nft.storage,ipfs&filecoin免费存储平台

1,361 阅读2分钟

nft.storage是一项全新的服务,专为存储链下NFT 数据而构建。将数据分散存储在IPFSFilecoin 上,并使用可在智能合约中使用的内容寻址 IPFS URI 进行引用,而不必担心引用的数据会发生变化。

以下是对他的一些常用功能和实现方式的简单总结:

创建账户

首先,想要使用它,当然需要一个身份认证 -- 创建账户。

  1. 创建账户 nft.storage/login/
  2. 创建并备份 token nft.storage/manage/ 这个token将会在一下很多地方使用

查看

接下来,在介绍如何将东西放到nftStorage之前,我想先介绍一下如何查看我们放上去的东西。

  1. 代码查看(前端)
import axios from 'axios'
axios
  .get(`https://api.nft.storage`, {
    headers: { Authorization: "Bearer <TOKEN>", platform: "web" },
  })
  .then((data) => {
    console.log(JSON.parse(data.request.response));
  });

注: 这里的 TOKEN 就是我们创建账户后生成的token了。

其他的增删改文档有详细的api和所有错误回应情况 nft.storage/api-docs/

  1. 网站查看 nft.storage/files/

只要你曾经登陆注册过,访问这个网站就可以看到并操作我们曾经上传的文件。如果登入超时通过邮箱亦可在此登入

上传

官方文档的上传方式琳琅满目,然而,首要考虑的当然是它的访问和使用是否方便,因为上传生成的 hash 值和路径不能直接访问,是需要拼接的。

  1. 直接上传文件
  • 上传语法(并获取 metadata)
import { File } from 'nft.storage'
const metadata = await client.store({
 name: '<NAME>',
 description: '<DESCRIPE_FILE>',
 image: new File([<DATA>], '<FILE_NAME>', { type: 'image/jpg' })
})
console.log(metadata)

hash 值:metadata.ipnft

  • 访问方式(适用 🌟🌟🌟)
    https://.ipfs.dweb.link/<FILE_NAME>
  • 弊端
    上传内容限制字符串,提供地址需拼接两个变量
  1. 上传文件夹
  • 上传语法(并直接获取 hash)
import { File } from 'nft.storage'
const hash = await client.storeDirectory([
  new File([<DATA>], '<FILE_NAME>'),
  new File([JSON.stringify(<DATA>)], '<FILE_NAME>')
])

hash 值:hash

  • 访问方式(适用 🌟🌟🌟) https://.ipfs.dweb.link/<FILE_NAME>

  • 弊端 上传内容限制字符串 拼接两个变量

  • 优点 已有上传文件过多时不需要循环跑上传文件

  1. 上传 buffer 文件
  • 上传语法(并直接获取 hash) const hash = await client.storeBlob(<BLOB || BUFFER>)
  • 访问方式(适用 🌟🌟🌟🌟🌟) https://.ipfs.dweb.link/

在实际的业务需求中,我觉得这是最便捷的方法。