IPFSへアップロードが成功したか確認する方法
Sep 5, 2018 · 2 min read
IPFSサーバを常時公開していてくださる方々に感謝しつつ、IPFSを無料の公開サーバとして使うことが、増えてきました。そんなときは、ファイルが他のNodeに共有されたか(アップロードされたか)を手動で確認していました。煩わしいので、自動化します。
IPFSのコマンドは使えるのか?
可能であれば、ipfsコマンドで実現したいです。リファレンスを確認すると、それらしいものがありました。
ipfs dht findprovs <key>...ヘルプには “keyを提供するNodeを探す” とあります。
実行してみると、確かに期待通り動作しますが、時間がかかりすぎます。10分待って、何も返却されず、数日後に実行したら、いくつかのNodeが返却されました。
IPFSのサイトにアクセスするのが最善
しかたないので、IPFSのサイト(https://ipfs.io/ipfs/<key>)にアクセスして、成功したらアップロード完了と定義して、スクリプト化しました。
Github: ipfs-local-uploader
次のように実行します。実行するとデーモンが起動し、対象ファイルなり、ディレクトリをaddします。そして、IPFSサイトに成功するまで、一定間隔でアクセスし続けます。
node uploader.js <file path | diretory path>ちなみに、24時間以上するとアップロードしたファイルに、アクセスできなくなるはずです。これは、IPFSのネットワークが古いファイルを削除するためです。なので、インターネット上にホストし続けたいなら、少なくとも1日に1回、再度アップロードするか、IPFSのdaemonを起動し続けるかする必要があります。
