如果您是现有的 Infura IPFS 用户或目前正在自托管您的数据,并想迁移到新的 Infura IPFS 服务上,本教程将会按步骤教您实现。

新的 Infura IPFS 服务更可靠,性能更强,并有一系列令人兴奋的新功能。

  • 一个包含所有重要统计信息 (使用量、存储大小等) 的 project 操作面板。
  • Pinning/Unpinning API
  • 定期在后台将您的文件发布到 IPFS P2P 网络中,保证您的内容可以在全球范围内被访问。

第1步 - 创建您的 Infura IPFS Project

访问 https://infura.io 注册一个新的帐户 (如果您还没有),并按照说明创建您的 IPFS project。

注册后,您将被重定向到设置页面,在那里您可以找到您的凭证:PROJECT_ID + PROJECT_SECRET。

https://s3.amazonaws.com/infura-blog-content/2021/06/Screen-Shot-2021-06-09-at-14.56.23.png

第二步 - 安装 ipfs-copy 工具

Github Release v1.0.0 下载您操作系统对应的预编译二进制文件。

https://s3.amazonaws.com/infura-blog-content/2021/06/Screen-Shot-2021-06-10-at-09.53.45.png

或者, 您可以直接通过 go 来重新构建。

使用 go get

go get -u github.com/INFURA/ipfs-copy

或者直接克隆源码来重新编译:

git clone <https://github.com/INFURA/ipfs-copy.git>
cd ipfs-copy
make install

验证是否安装成功:

ipfs-copy version
> ipfs-copy version: 1.0.0

对于下一步,您有两个选择,取决于您是想把现有的 Infura 托管数据 pin 到您的 project 上,还是从其他的 IPFS 节点迁移数据。

第三步 - 数据迁移

如何 pin 托管在 Infura 上的 IPFS 数据

如果您只想 pin 少量的 CID (content identifier),您可以通过 Infura 做 IPFS 服务的额外登陆认证,手动调用标准的 IPFS API。

这里是一个使用 cURL 进行 API pinning call 的样例:

curl -X POST -u "YOUR_PROJECT_ID:YOUR_PROJECT_SECRET" "<https://ipfs.infura.org:5001/api/v0/pin/add?arg=YOUR_IPFS_CID>"

如何您有数十、数百甚至数千的 CID,您可以把这些 CID 放在一个单独的配置文件中,然后运行 ipfs-copy 工具。

创建一个包含 IPFS CID 的配置文件,每个 CID 通过换行符 \n 分隔。

样例配置文件:

QmaEZGiDrS7kDXMxbmpamrX1sPHZUM61a3YpjDoyaC3yfJ
QmTeRJXx623WwsoDk4371kh3JKCjoDcoWrqrhY9ekRasjE
QmUsQxC5bsgX53WhQ11DkxyB4uPYLEpdgmidFhGgUFK5aK

ipfs-copy 命令会读取您所有包含 CID 的配置文件,然后通过多个工作线程并行地将他们 pin 到您的 Infura IPFS project 中。

ipfs-copy --cids=/home/xxx/Documents/ipfs-cids.txt --project-id=<YOUR_PROJECT_ID> --project-secret=<YOUR_PROJECT_SECRET>

如何从另外一个节点中迁移数据

如果您当前的数据自托管在一个 IPFS 节点中,您依然可以进行迁移!Infura 会帮您搞定所有关于 IPFS 的基础设施和管理,您可以全神贯注地做好您的业务。

ipfs-copy 命令将会遍历源节点中的所有 pin,复制其内容块,同时将它们 pin 到您的 Infura IPFS project。

ipfs-copy --source-api-url=http://localhost:5001 --project-id=<YOUR_PROJECT_ID> --project-secret=<YOUR_PROJECT_SECRET>

恭喜您!您已经完成了向新的 IPFS 服务的迁移!

打开您的 Infura project 的操作面板,即可查看所有的数据,文件大小或它们的使用情况。