跳到主要内容

URL

https://<endpoint-api-host>/pinning/pinFile

例如,“Baitech 上海” 的 pinFile API URL 为:

https://api-sh.decoo-cloud.cn/pinning/pinFile

描述

通过 Endpoint 上传文件到 Baitech Storage 并存储到 IPFS 网络。

note

为了提供和 pinByHash 一致的编程模型,每次调用 pinFile 时也会自动生成一个pin job。同样地,您也可以调用 pinJobs API 来查询这些 pin job 的状态。

请求类型

POST

Headers

"UserAccessToken": "<YOUR_ACCESS_TOKEN>"

Body

API 请求的 Body 应该为 multipart/form-data 格式,并包含以下键值对:

file
表单中的第一个 Key 应该为 “file”,Value 为要上传的文件。

decooMetadata (Optional)

在上传文件的同时,可以附加一些 metadata。这些 metadata 可以在调用 pinList 查询文件列表时做为过滤条件。

decooMetadata 格式如下:

{
"name": "<自定义文件名。如果不提供,则默认使用原文件名 (如果能获取到的话)。>"
}

decooMetadata 示例如下:

"decooOptions": {
"name": "我的文件"
}

cid

待上传文件的 IPFS CID。您可以通过多种方式获取一个文件的 CID,比如:

  • IPFS Desktop。本地安装 IPFS Desktop 或者 go-ipfs,然后调用本地 IPFS 节点的 /api/v0/add HTTP API 来获取文件的 CID (注意:在调用该 API 时,建议将 only-hash 参数设为 true)。
  • ipfs-core。通过 ipfs-core 来获取文件 CID。
  • Baitech SDK。直接使用 Baitech 提供的 Baitech SDK 来获取文件 CID。

secret

用户使用自己的 RSA 私钥针对文件 CID 生成的签名。详情可参考 API 认证机制 的相关部分。

Response

{
"PinHash": "<上传文件的 IPFS CID>",
"PinSize": "<文件大小 (字节)>",
"PinDate": "<文件存储到 IPFS 的时间戳 (ISO 8601格式)>"
}

Curl 请求示例

curl -X POST "https://api-sh.decoo-cloud.cn/pinning/pinFile" \
-H "UserAccessToken: <YOUR_ACCESS_TOKEN>" \
-H "Content-Type: multipart/form-data" \
-F "file=@<YOUR_FILE_PATH>" \
-F 'decooMetadata="{\"name\": \"我的文件\"}"' \
-F "cid=<YOUR_FILE_CID>" \
-F "secret=<YOUR_DIGITAL_SIGNATURE>"