Storj IPFSのピンニングサービスを使ってみる [ベータ版]

2022.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Storj IPFS Pinning Service (Beta)を使うと、

Storj DCSネットワーク上のStorjがホストするIPFSの専用ノードを介して、分散型クラウドへのIPFSピンニングを使用できます。

HTTPエンドポイントを介してアップロードできるだけでなく、Braveなどのブラウザ、パブリックIPFSゲートウェイ、またはIPFSDesktopやIPFSCLIなどのIPFSプログラムで、CIDを使用して、 コンテンツを取得できます。

IPFS上にアップロードしたファイルは一時的にノード上にキャッシュされて残るのですが、ガベージコレクションが存在しており、これが実行されるとキャッシュは消去されてしまいます。 ノードにファイルを保持し続けるために行うのがPin(固定)です。 Storj IPFS Pinning ServiceはこのPinを代わりに行なってくれます。

使ってみる

現在はベータ版として提供されています。

ここ からベータ版への参加リクエストを送ることができ、 2、3日するとメールで参加するための情報が返ってきました。

HTTPアップロードエンドポイントを使ってアップロード

エンドポイント: https://www.storj-ipfs.com/api/v0/add

Storj IPFSサービスにアップロードされたすべてのコンテンツが固定されます。

IPFS HTTP RPCに従うとのことですが、

wrap-with-directory というオプションのみサポートしている(ファイルをディレクトリオブジェクトでラップするかどうか。bool型)

ベータ版への参加を招待されたときに付与される資格情報をHTTPベーシック認証として指定する必要がある

とのこと。

CURL

コマンド例)

curl -u <<ipfs_beta_user>>:<<ipfs_beta_password>> \
-X POST \
-F file=@<</path/file.extension>> \
"https://www.storj-ipfs.com/api/v0/add?wrap-with-directory=true"

レスポンス例)

wrap-with-directoryがtrueだと、以下のように2つのjsonデータが帰ってきます。

ハッシュ値、名前、サイズが含まれたBodyです。

{"Name":"FWV4_NCaUAEaJg_.jpeg","Hash":"QmacLE8eLan9khTKEASqEKPJbW5bnCzLUPenB8i6J5YGCk","Size":"95498"}
{"Name":"","Hash":"QmWH5shpBCkAzpFjauwQVLeUbwBpigT1JmMLueEgwX8k8a","Size":"95566"}

javascript

公式のドキュメントに、javascriptを使用した例 があるので、この方法でも可能です。

Pinされたファイルを取得する

アップロードされたコンテンツはすべて自動的に固定され、IPFSデスクトップIPFS CLIなどのCIDを介してネイティブにIPFSをサポートするソフトウェアから取得できます.

IPFSをネイティブにサポートしていないアプリケーションの場合は、任意のパブリックIPFSゲートウェイ、またはStorj IPFSゲートウェイを使用できます。

 #### Storj IPFSゲートウェイ経由

https://www.storj-ipfs.com/ipfs/<cid> で取得できます。

cidはアップロードした時に帰ってくるbodyに含まれているHashの値を使います。

例) https://www.storj-ipfs.com/ipfs/QmacLE8eLan9khTKEASqEKPJbW5bnCzLUPenB8i6J5YGCk

かなり高速に取得できました。

ベータ版なので、これから使用方法が変わったりなどがあると思います。 今後の情報も追いかけていきたいと思います

参考