FleekのStorageサービスを使ってIPFSにファイルを保存する

2022.08.01

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

前の記事でFleekを使ったWebサイトのホスティングをやってみましたが、今回はStorageサービスを利用してみます。

このStorageサービスですが、FleekのWebUI, CLI, SDKを利用することでIPFSにファイルをアップロードしたり、ピンニングを行ったりすることが可能です。

IPFSから直接取得するよりもファイル取得が速いことが挙げられています。

組み込みのピン留めオーケストレーション、CDN(Fleek Edge)、圧縮、および画像のサイズ変更により、Fleek Storageにアップロードされたすべてのファイルを最大10倍高速に取得できます

Fleekのサーバー独自のバックアップのほか、Filecoinに自動でアーカイブされるようにもなっていおり、冗長かもできているとのこと。

使ってみる

Fleekへのサインアップが済んでいる状態、プランはBasic($0/mo)のものを使用します。

Basicプランでは最大で3GBまでが利用可能です。

WebのUIから

Fleekにログインし、Storageのページを開きます。

このUIを介してファイルのアップロードや閲覧が可能となり、アップロードされたすべてのファイルはIPFSに公開され、さらにDNSに公開されるようになっています。

公開してもいいファイルだけをアップロードするようにしましょう。パブリックに公開するWebサイトのアセットをホストすることを目的としたツールのようです。

ファイルアップロード

Uploadボタンを押すと、モーダルダイアログが立ち上がるので、ファイルをドラッグするかファイルを選択してアップロードできます。 複数のファイルもアップロード可能です。

アップロードしたファイルの詳細画面では上記の情報が参照可能です。

IPFSゲートウェイで直接参照することもできますし、Fleek Storage URLで参照することもできます。

例)

IPFSゲートウェイ:

https://ipfs.fleek.co/ipfs/bafybeibb6myrenzlnjyo42m3nm4pdztpizktbrrem7oz63bsp4mcflpyle

Fleek Storage URL:

https://storageapi.fleek.co/0c82ebdb-00c4-461c-acb2-d582d7ea4f18-bucket/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202022-07-29%2011.06.02.png

また、ファイルだけでなく

このようにフォルダもアップロード可能です。

詳細画面ではフォルダの中にあるファイルが確認できます。

AWS S3 コマンドラインインターフェイスとの統合

AWSS3インターフェースを介してFleek Storageにアクセスすることもできます。

FleekのAPIKeyを用意

Fleek StorageにアクセスするためのAPI KEYが必要なので、Webのコンソールから作成します。

コンソール画面の左下のユーザー設定のリンクをクリックし、Storage APIの項目でGenerate APIをクリックして作成します。

API KeyとAPI Secretが生成されますが、Secretは一度しか表示されないので安全な場所に保管しておきます。

AWS CLI) コマンドラインを使ってアクセスする

AWS CLIを使ってStorageにアクセスします。

AWS CLIの設定で、[[apiKey]]と[[apiSecret]]をFleekで作成したAPI KeyとAPI Secretに置き換えます

$ aws configure --profile [[Fleek用のプロファイル名]]

AWS Access Key ID [None]: [[apiKey]]
AWS Secret Access Key [None]: [[apiSecret]]
Default region name [None]: us-east-1
Default output format [None]: ENTER

設定後は、

$ aws --endpoint-url [[fleek endpoint]] command

のように、--endpoint-url

https://storageapi2.fleek.co

を指定してアクセスすることが可能になります。

例)

  • バケットの一覧表示
$ aws --endpoint-url https://storageapi2.fleek.co s3 ls --profile [[プロファイル名]]
  • オブジェクトの一覧表示
$ aws --endpoint-url https://storageapi2.fleek.co s3 ls s3://[[バケット名]]/ --profile [[プロファイル名]]
  • アップロード
$ aws --endpoint-url https://storageapi2.fleek.co s3 cp ./[[アップロードファイル名]] s3://[[バケット名]]/ --profile [[プロファイル名]]
  • ダウンロード
$ aws --endpoint-url https://storageapi2.fleek.co s3 cp s3://[[バケット名]]/[[ダウンロードファイル名]]  [[保存パス]] --profile [[プロファイル名]]

aws s3 コマンドと同様の操作が可能になります。

CLI(これはまだ開発中)

Fleek CLIというコマンドラインからFleekの製品にアクセスできるようにするツールが提供されています。

当社のホスティング製品にアクセスしたり、Fleek Storage JS を使用する際に自分自身を認証するための API キーを取得したりすることができます

このCLIからもファイル操作ができるようになることを期待。

インストール

$ npm i -g @fleekhq/fleek-cli

$ fleek --help
Fleek command line utilities

VERSION
  @fleekhq/fleek-cli/0.1.8 darwin-x64 node-v16.14.0

USAGE
  $ fleek [COMMAND]

TOPICS
  site  Manage your Fleek sites

COMMANDS
  autocomplete  display autocomplete installation instructions
  help          display help for fleek
  login         Login to your Fleek account
  logout        Logout of the CLI
  site          Manage your Fleek sites
  whoami        Show profile details of the logged in user

最後に

FleekのStorageサービスを使ってIPFSにファイルを保存したりダウンロードしたりしてみました。

自動的にピンニングしてくれたり、Fleek外にバックアップもしてくれるので、Webサイトと一緒に使う場合は重宝しそうな感じです。

今回はWebコンソールとコマンドラインでの操作を行いましたが、Javascript SDKも用意されているようなので次回はこれを使ったチュートリアルにチャレンジしようと思います。

参考