IPFSへアップロードが成功したか確認する方法

re795h
re795h
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を起動し続けるかする必要があります。

re795h

Written by

re795h

Japanese software engineer. Like blockchain, sauna and manga.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade