文档计划 | IPFS API参考文档

API 参考文档

本文档基于 go-ipfs v0.4.11-dev 版本,发布于2017年8月23日。

这是一篇关于 IPFS 的 HTTP API 说明。

IPFS HTTP API 是一种 RPC API 接口,在不同的IPFS实现之间都能工作。本说明文档所对应的开源库实现为 go-ipfs,这也是目前功能最完备的实现。

本文档由 go-ipfs 自动生成。如有问题或需要帮助,请查看 GitHub 上的 ipfs-http-api-docs 库。

入门指南

符合 CLI 命令行界面

命令行界面(CLI)所有可用的 命令行,都可以使用HTTP API 来访问。例如,

> ipfs swarm peers
/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ
/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx
/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z

> curl http://127.0.0.1:5001/api/v0/swarm/peers
{
   "Strings": [

"/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ",

"/ip4/104.236.151.122/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx",

"/ip4/104.236.176.52/tcp/4001/ipfs/QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z",
    ]
}

参数

使用关键字”arg“ 添加参数,该关键字是一种特殊的查询字符串。

> curl "http://127.0.0.1:5001/api/v0/swarm/disconnect?arg=/ip4/54.93.113.247/
tcp/48131/ipfs/QmUDS3nsBD1X4XK5Jo836fed7SErTyTuQzRqWaiQAyBYMP"
{
    "Strings": [
        "disconnect QmUDS3nsBD1X4XK5Jo836fed7SErTyTuQzRqWaiQAyBYMP success",
    ]
}

注意:“arg”关键字可以多次使用来表示多个参数。

标记

标记通过查询字符串参数添加。例如,'--encoding = json' 标志使用 '&encoding = json' 查询参数表示:

> curl "http://127.0.0.1:5001/api/v0/object/get?arg=QmaaqrHyAQm7gALkRW8Dcf
GX3u8q9rWKnxEMmf7m9z515w&encoding=json"
{
    "Links": [
       {
           "Name": "index.html",
           "Hash": "QmYftndCvcEiuSZRX7njywX2AGSeHY2ASa7VryCq1mKwEw",
           "Size": 1700
       },
       {
           "Name": "static",
           "Hash": "QmdtWFiasJeh2ymW3TD2cLHYxn1ryTuWoNpwieFyJriGTS",
           "Size": 2428803
       }
    ],
    "Data": "CAE="
}

快速索引

  • /add
  • /bitswap/ledger
  • /bitswap/reprovide
  • /bitswap/stat
  • /bitswap/unwant
  • /bitswap/wantlist
  • /block/get
  • /block/put
  • /block/rm
  • /block/stat
  • /bootstrap/add/default
  • /bootstrap/list
  • /bootstrap/rm/all
  • /cat
  • /commands
  • /config/edit
  • /config/replace
  • /config/show
  • /dag/get
  • /dag/put
  • /dag/resolve
  • /dht/findpeer
  • /dht/findprovs
  • /dht/get
  • /dht/provide
  • /dht/put
  • /dht/query
  • /diag/cmds/clear
  • /diag/cmds/set-time
  • /diag/sys
  • /dns
  • /file/ls
  • /files/cp
  • /files/flush
  • /files/ls
  • /files/mkdir
  • /files/mv
  • /files/read
  • /files/rm
  • /files/stat
  • /files/write
  • /filestore/dups
  • /filestore/ls
  • /filestore/verify
  • /get
  • /id
  • /key/gen
  • /key/list
  • /key/rename
  • /key/rm
  • /log/level
  • /log/ls
  • /log/tail
  • /ls
  • /mount
  • /name/publish
  • /name/resolve
  • /object/data
  • /object/diff
  • /object/get
  • /object/links
  • /object/new
  • /object/patch/add-link
  • /object/patch/append-data
  • /object/patch/rm-link
  • /object/patch/set-data
  • /object/put
  • /object/stat
  • /p2p/listener/close
  • /p2p/listener/ls
  • /p2p/listener/open
  • /p2p/stream/close
  • /p2p/stream/dial
  • /p2p/stream/ls
  • /pin/add
  • /pin/ls
  • /pin/rm
  • /pin/update
  • /pin/verify
  • /ping
  • /pubsub/ls
  • /pubsub/peers
  • /pubsub/pub
  • /pubsub/sub
  • /refs/local
  • /repo/fsck
  • /repo/gc
  • /repo/stat
  • /repo/verify
  • /repo/version
  • /resolve
  • /shutdown
  • /stats/bitswap
  • /stats/bw
  • /stats/repo
  • /swarm/addrs/listen
  • /swarm/addrs/local
  • /swarm/connect
  • /swarm/disconnect
  • /swarm/filters/add
  • /swarm/filters/rm
  • /swarm/peers
  • /tar/add
  • /tar/cat
  • /update
  • /version

路径列表

/api/v0/add

向 ipfs 添加文件或目录。

参数

  • arg [file]: 待添加到 ipfs 的文件路径。是否必要:
  • recursive [bool]: 是否递归添加目录路径。默认: 否。是否必要: 否。
  • quiet [bool]: 是否最小输出。 是否必要: 否。
  • quieter [bool]: 是否只写入哈希值。是否必要: 否。
  • silent [bool]: 是否不输出。是否必要: 否。
  • progress [bool]: Stream progress data. 是否必要: 否。
  • trickle [bool]: 是否使用 trickle-dag 格式算法生成DAG。是否必要: 否。
  • only-hash [bool]: 是否仅仅出块和hash,不写入磁盘。是否必要: 否。
  • wrap-with-directory [bool]: 是否使用目录对象来包装文件。是否必要: 否。
  • hidden [bool]: 是否添加隐藏文件,只有在递归的时候才有用。是否必要: 否。
  • chunker [string]: 使用的成块算法。是否必要: 否。
  • pin [bool]: 是否在添加的时候持久化 (不被垃圾回收所回收)。默认:否。是否必要: 否。
  • raw-leaves [bool]: 实验中的参数。是否为叶子节点使用原始块。是否必要: 否。
  • nocopy [bool]: 实验中的参数。是否使用filestore存储文件。是否必要: 否。
  • fscache [bool]: 实验中的参数。检测filestore是否已经存在了数据块。是否必要: 否。
  • cid-version [int]: 实验中的参数。返回 Cid 版本。非零值将把 ‘raw-leaves’ 的默认值变为真。默认:“0”。是否必要: 否。
  • hash [string]: 实验中的参数。使用的哈希函数。使用时设置 Cid 值为1。默认: “sha2-256”。是否必要: 否。

请求体

参数“path”是一种文件类型。这个路径需要在请求主体(body)中有包含一个 ‘multipart/form-data’ 文件。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Name": ""
    "Hash": ""
    "Bytes": ""
    "Size": ""
}

cURL 示例

curl -F file=@myfile 
"http://localhost:5001/api/v0/add?recursive=false&quiet=&
quieter=&silent=&progress=&trickle=&
only-hash=&wrap-with-directory=&hidden=
&chunker= &pin=true&raw-leaves=&nocopy=
&fscache=&cid-version=0&hash=sha2-256"

/api/v0/bitswap/ledger

显示当前节点的账本信息。

参数

  • arg [string]: 监测账本的节点ID。是否必要:

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Peer": ""
    "Value": ""
    "Sent": ""
    "Recv": ""
    "Exchanged": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/bitswap/ledger?arg="

/api/v0/bitswap/reprovide

触发 reprovider。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/bitswap/reprovide"

/api/v0/bitswap/stat

展示bitswap代理的诊断信息。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "ProvideBufLen": ""
    "Wantlist": [
        ""
    ]
    "Peers": [
        ""
    ]
    "BlocksReceived": ""
    "DataReceived": ""
    "BlocksSent": ""
    "DataSent": ""
    "DupBlksReceived": ""
    "DupDataReceived": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/bitswap/stat"

/api/v0/bitswap/unwant

从wantlist中移除给定区块。

参数

  • arg [string]: 待移除的值。是否必须:

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/bitswap/unwant?arg="

/api/v0/bitswap/wantlist

显示wantlist中的当前块列表。

参数

  • peer [string]: 需要展示wantlist的结点。是否必须:否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Keys": [
        ""
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/bitswap/wantlist?peer="

/api/v0/block/get

获取原始IPFS块。

参数

  • arg [string]: 存在区块的base58编码的multihash。是否必须:

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/block/get?arg="

/api/v0/block/put

将输入存储为IPFS块。

参数

  • arg [file]: 需要被存储为 IPFS 块的数据。是否必须:是。
  • format [string]: 所创建块的cid格式。默认: “v0”。是否必须:否。
  • mhtype [string]: 返回multihash结构的哈希函数. 默认: “sha2-256”。是否必须:否。
  • mhlen [int]: multihash结构的长度。默认: “-1”。是否必须:否。

请求体

参数 “data” 是文件类型。此接口需要请求体‘multipart/form-data’中的文件。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Key": ""
    "Size": ""
}

cURL 示例

    curl -F file=@myfile "http://localhost:5001/api/v0/block/put?
    format=v0&mhtype=sha2-  256&mhlen=-1"

/api/v0/block/rm

移除IPFS块。

参数

  • arg [string]: 将被移除的base58编码的multihash区块。是否必须:是。
  • force [bool]: 是否忽略不存在的区块。默认:否。是否必须:否。
  • quiet [bool]: 是否最小输出。默认: 否。是否必须:否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Hash": ""
    "Error": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/block/rm?arg=&force=false&quiet=false"

/api/v0/block/stat

打印原始IPFS块的信息。

参数

  • arg [string]: 当前块的base58 multihash。是否必须:是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Key": ""
    "Size": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/block/stat?arg="

/api/v0/bootstrap/add/default

向bootstrap列表中添加默认peer。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Peers": [
        ""
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/bootstrap/add/default"

/api/v0/bootstrap/list

显示bootstrap列表中的peers。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Peers": [
        ""
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/bootstrap/list"

/api/v0/bootstrap/rm/all

移除bootstrap列表中的所有peers。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Peers": [
        ""
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/bootstrap/rm/all"

/api/v0/cat

显示IPFS的对象数据。

参数A

  • arg [string]: The path to the IPFS object(s) to be outputted. Required: yes.

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/cat?arg="

/api/v0/commands

显示所有有效指令。

参数

  • flags [bool]: 是否显示命令标记。默认: 否。是否必须:否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Name": ""
    "Subcommands": [
        {
            "Name": ""
            "Subcommands": [
                {
                    "Name": ""
                    "Subcommands": [
                        ...
                    ]
                    "Options": [
                        ...
                    ]
                }
            ]
            "Options": [
                {
                    "Names": [
                        ...
                    ]
                }
             ]
        }
    ]
    "Options": [
        {
            "Names": [
                ""
            ]
        }
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/commands?flags=false"

/api/v0/config/edit

在$EDITOR中打开配置文件进行编辑。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/config/edit"

/api/v0/config/replace

替换配置文件。

参数

  • arg [file]: 用作新配置文件的文件。是否必须:是。

请求体

参数"file"是文件类型。此接口需要请求体 ‘multipart/form-data’ 中的文件。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl -F file=@myfile "http://localhost:5001/api/v0/config/replace"

/api/v0/config/show

输出配置文件内容。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

 This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/config/show"

/api/v0/dag/get

获取ipfs中的一个dag节点。

参数

  • arg [string]: 要获取的对象节点。是否必须:是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/dag/get?arg="

/api/v0/dag/put

向ipfs中添加一个dag节点。

参数

  • arg [file]: 要放入的节点对象。是否必须:是。
  • format [string]: 将需要添加的对象转化为指定格式。默认: “cbor”。是否必须:否。
  • input-enc [string]: 将输入对象转化为指定格式。默认: “json”。是否必须:否。
  • pin [bool]: 是否在添加的时候持久化。默认: 否。是否必须:否。
  • hash [string]: 使用的哈希函数。默认: “sha2-256”。是否必要: 否。

请求体

参数'object data'是文件类型。此接口需要请求体‘multipart/form-data’中的文件。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Cid": ""
}

cURL 示例

curl -F file=@myfile "http://localhost:5001/api/v0/dag/put?
format=cbor&input-enc=json&pin=false&hash="

/api/v0/dag/resolve

解析ipId块。

参数

  • arg [string]: 需要解析的路径。是否必须: 是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Cid": ""
    "RemPath": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/dag/resolve?arg="

/api/v0/dht/findpeer

查询和节点ID相关联的多地址的所有DHT信息。

参数

  • arg [string]: 需要查询的节点ID。是否必须: 是。
  • verbose [bool]: 是否输出其他信息。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "ID": ""
    "Type": ""
    "Responses": [
        {
            "ID": ""
            "Addrs": [
                ""
            ]
        }
    ]
    "Extra": ""
}
 
 

cURL 示例

curl "http://localhost:5001/api/v0/dht/findpeer?arg=&verbose=false"

/api/v0/dht/findprovs

在DHT网络中找到有指定值的节点。

参数

  • arg [string]: 有指定值的节点的键。是否必须: 是。
  • verbose [bool]: 是否输出其他信息。默认: 否。是否必须: 否。
  • num-providers [int]: 有指定值的节点数量。默认: 20。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "ID": ""
    "Type": ""
    "Responses": [
        {
            "ID": ""
            "Addrs": [
                ""
            ]
        }
    ]
    "Extra": ""
}
 
 

cURL 示例

curl "http://localhost:5001/api/v0/dht/findprovs?arg=&
verbose=false&num-providers=20"

/api/v0/dht/get

给定一个键,在DHT表中查询最佳值。

参数

  • arg [string]: 需要查询值的键。是否必须:
  • verbose [bool]: 是否输出其他信息。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "ID": ""
    "Type": ""
    "Responses": [
        {
            "ID": ""
            "Addrs": [
                ""
            ]
        }
    ]
    "Extra": ""
}
 
 

cURL 示例

curl "http://localhost:5001/api/v0/dht/get?arg=&verbose=false"

/api/v0/dht/provide

向网络宣布正在提供给定的值。

参数

  • arg [string]: 需要接受记录的所有节点的键。是否必须: 是。
  • verbose [bool]: 是否输出其他信息。默认: 否。是否必须: 否。
  • recursive [bool]: 是否递归添加目录路径。是否输出其他信息。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "ID": ""
    "Type": ""
    "Responses": [
        {
            "ID": ""
            "Addrs": [
                 ""
            ]
        }
    ]
    "Extra": ""
}
 
 

cURL 示例

curl "http://localhost:5001/api/v0/dht/provide?arg=&verbose=false&recursive=false"

/api/v0/dht/put

往DHT网络中写入key-value值。

参数

  • arg [string]: 存取特定值的节点的键。是否必须: 是。
  • arg [string]: 要存储的值。是否必须: 是。
  • verbose [bool]: 是否输出其他信息。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "ID": ""
    "Type": ""
    "Responses": [
        {
            "ID": ""
            "Addrs": [
                ""
            ]
        }
    ]
    "Extra": ""
}
 
 

cURL 示例

curl "http://localhost:5001/api/v0/dht/put?arg=&arg=&verbose=false"

/api/v0/dht/query

通过查询DHT网络找到与给定节点最近的节点。

参数

  • arg [string]: 针对此次查询的节点 ID。是否必须: 是。
  • verbose [bool]: 是否输出其他信息。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "ID": ""
    "Type": ""
    "Responses": [
        {
            "ID": ""
            "Addrs": [
                ""
            ]
        }
    ]
    "Extra": ""
}
 
 

cURL 示例

curl "http://localhost:5001/api/v0/dht/query?arg=&verbose=false"

/api/v0/diag/cmds/clear

从日志中清除失效请求。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/diag/cmds/clear"

/api/v0/diag/cmds/set-time

设置在日志中保存失效请求的时间。

参数

  • arg [string]: 在日志中保存失效请求的时间。是否必须: 是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

 This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/diag/cmds/set-time?arg=

/api/v0/diag/sys

打印系统诊断信息。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/diag/sys"

/api/v0/dns

解析DNS链接。

参数

  • arg [string]: 需要解析的域名。是否必须: 是。
  • recursive [bool]: 是否递进解析,终止条件为解析结果不是 DNS 链接。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Path": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/dns?arg=&recursive=false"

/api/v0/file/ls

列出Unix文件系统对象的目录内容。

参数

  • arg [string]: 所列出 ipfs 对象的路径。是否必须: 是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Arguments": {
        "": ""
    }
    "Objects": {
        "": {
            "Hash": ""
            "Size": ""
            "Type": ""
            "Links": [
                {
                    "Name": ""
                    "Hash": ""
                    "Size": ""
                    "Type": ""
                }
            ]
        }
    }
}

cURL 示例

curl "http://localhost:5001/api/v0/file/ls?arg="

/api/v0/files/cp

复制文件到mfs。

参数

  • arg [string]: 要复制的源对象。是否必须: 是。
  • arg [string]: 复制的目的地。是否必须: 是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/files/cp?arg=&arg="

/api/v0/files/flush

将给定路径的数据刷新到磁盘。

参数

  • arg [string]: 落盘路径。默认: ‘/’。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/files/flush?arg="

/api/v0/files/ls

列出本地可变命名空间中的目录。

参数

  • arg [string]: 显示列表的路径。默认: ‘/’。是否必须: 否。
  • l [bool]: 是否使用长列表格式。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Entries": [
        {
            "Name": ""
            "Type": ""
            "Size": ""
            "Hash": ""
        }
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/files/ls?arg=&l="

/api/v0/files/mkdir

创建目录。

参数

  • arg [string]: 创建目录的路径。是否必须: 是。
  • parents [bool]: 如果存在父目录,是否显示 No error;否则,是否创建父目录。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/files/mkdir?arg=&parents="

/api/v0/files/mv

移动文件。

参数

  • arg [string]: 需要移动的源文件。是否必须: 是。
  • arg [string]: 文件拷贝到的目标路径。是否必须: 是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/files/mv?arg=&arg="

/api/v0/files/read

读取给定mfs中的文件。

参数

  • arg [string]: 需要读取的文件的路径。是否必须: 是。
  • offset [int]: 读取处的字节偏移量。是否必须: 否。
  • count [int]: 读取的字节数量最大值。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/files/read?arg=&offset=&count="

/api/v0/files/rm

移除文件。

参数

  • arg [string]: 需要移除的文件。是否必须: 是。
  • recursive [bool]: 是否递归地移除目录。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/files/rm?arg=&recursive="

/api/v0/files/stat

显示文件状态。

参数

  • arg [string]: 需要显示状态的节点的路径。是否必须: 是。
  • format [string]: 以给定格式输出文件状态。支持的符号: .。不支持其他格式。默认: Size: CumulativeSize: ChildBlocks: Type: 。默认: “ Size: CumulativeSize: ChildBlocks: Type: ”。是否必须: 否。
  • hash [bool]: 是否只输出哈希值。指示 ‘–format=’。不支持其他格式。默认: 否。是否必须: 否。
  • size [bool]: 是否只输出大小。指示 ‘–format=’。不支持其他格式。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Hash": ""
    "Size": ""
    "CumulativeSize": ""
    "Blocks": ""
    "Type": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/files/stat?arg=&format= 
Size:   CumulativeSize:   ChildBlocks:  
Type: &hash=false&size=false"

/api/v0/files/write

写入给定文件系统中的可变文件。

参数

  • arg [string]: 写入路径。是否必须: 是。
  • arg [file]: 需要写入的数据。是否必须: 是。
  • offset [int]: 开始写入处的字节偏移量。是否必须: 否。
  • create [bool]: 如果文件不存在,是否创建文件。是否必须: 否。
  • truncate [bool]: 写入之前是否把文件长度截断为零。是否必须: 否。
  • count [int]: 读取字节的长度最大值。是否必须: 否。

请求体

参数'data'是文件类型。此接口需要请求体‘multipart/form-data’中的文件。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl -F file=@myfile "http://localhost:5001/api/v0/files/write?arg=&
offset=&create=&truncate=&count="

/api/v0/filestore/dups

列出filestore和标准块存储中的块。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Ref": ""
    "Err": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/filestore/dups"

/api/v0/filestore/ls

列出filestore中的对象列表。

参数

  • arg [string]: 需要列出的对象的Cid。是否必须: 否。
  • file-order [bool]: 是否根据备份文件的路径顺序对结果进行排序。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Status": ""
    "ErrorMsg": ""
    "Key": ""
    "FilePath": ""
    "Offset": ""
    "Size": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/filestore/ls?arg=&file-order="

/api/v0/filestore/verify

验证filestore中的对象。

参数

  • arg [string]: 待验证的对象的Cid。是否必须: 否。
  • file-order [bool]: 是否根据备份文件的路径顺序对结果进行验证。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Status": ""
    "ErrorMsg": ""
    "Key": ""
    "FilePath": ""
    "Offset": ""
    "Size": ""

}

cURL 示例

 curl "http://localhost:5001/api/v0/filestore/verify?arg=&file-order="

/api/v0/get

下载IPFS对象。

参数

  • arg [string]: 接收输出结果的IPFS 对象的路径。是否必须: 是。
  • output [string]: 存储输出结果的路径。是否必须: 否。
  • archive [bool]: 是否输出一个 TAR 压缩包。默认: 否。是否必须: 否。
  • compress [bool]: 是否使用 GZIP 压缩法对输出进行压缩。 默认: 否。是否必须: 否。
  • compression-level [int]: 压缩等级 (1-9). 默认: “-1”。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/get?arg=&output= &archive=false&compress=false&compression-level=-1"

/api/v0/id

显示ipfs节点id。

参数

  • arg [string]: 需要查询的节点的 ID。是否必须: 否。
  • format [string]: 备选的输出格式。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "ID": ""
    "PublicKey": ""
    "Addresses": [
        ""
    ]
    "AgentVersion": ""
    "ProtocolVersion": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/id?arg=&format="

/api/v0/key/gen

创建一个新的键值对。

参数

  • arg [string]: 新建键的名字。是否必须: 是。
  • type [string]: 新建键的类型 [rsa, ed25519]。是否必须: 否。
  • size [int]: 新建键的长度。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Name": ""
    "Id": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/key/gen?arg=&type=&size="

/api/v0/key/list

显示本地所有键值对。

参数

  • l [bool]: 是否显示键的其他信息。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Keys": [
        {
            "Name": ""
            "Id": ""
        }
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/key/list?l="

/api/v0/key/rename

重命名一个键值对。

参数

  • arg [string]: 需要重命名的键现在的名字。是否必须: 是。
  • arg [string]: 键的新名字。是否必须: 是。
  • force [bool]: 是否允许覆盖存在的键。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Was": ""
    "Now": ""
    "Id": ""
    "Overwrite": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/key/rename?arg=&arg=&force="

/api/v0/key/rm

移除一个键值对。

参数

  • arg [string]: 待移除的键的名字。是否必须: 是。
  • l [bool]: 是否显示键的其他信息。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Keys": [
        {
            "Name": ""
            "Id": ""
        }
    ]
}

cURL 示例

 curl "http://localhost:5001/api/v0/key/rm?arg=&l="

/api/v0/log/level

修改日志级别。

参数

  • arg [string]: 子系统登日志识别符。所有子系统都使用 ‘all’。是否必须: 是。
  • arg [string]: 日志级别, 从 debug, info, warning, error 到 critical,其中最冗长的日志标记为 ‘debug',最短的日志标记为 ‘critical’。是否必须: 是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Message": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/log/level?arg=&arg="

/api/v0/log/ls

列出日志子系统。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Strings": [
        ""
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/log/ls"

/api/v0/log/tail

读取事件日志。

参数

此接口不需要传入参数。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

curl "http://localhost:5001/api/v0/log/tail"

/api/v0/ls

列出Unix文件系统对象的目录内容。

参数

  • arg [string]: 链接到列表的 IPFS 对象的路径。是否必须: 是。
  • headers [bool]: 是否输出表头 (Hash, Size, Name)。默认: 否。是否必须: 否。
  • resolve-type [bool]: 是否解析链接的对象来检测其数据类型。默认: 是。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Objects": [
        {
            "Hash": ""
            "Links": [
                {
                    "Name": ""
                    "Hash": ""
                    "Size": ""
                    "Type": ""
                }
            ]
        }
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/ls?arg=&headers=false&resolve-type=true"

/api/v0/mount

将IPFS挂载到文件系统(只读)。

参数

  • ipfs-path [string]: IPFS 挂载路径。是否必须: 否。
  • ipns-path [string]: IPNS 挂载路径。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "IPFS": ""
    "IPNS": ""
    "FuseAllowOther": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/mount?ipfs-path=&ipns-path="

/api/v0/name/publish

输出IPNS名录。

参数

  • arg [string]: 待输出对象的 ipfs 访问路径。是否必须: 是。
  • resolve [bool]: 输出前是否解析给定路径。默认: 是。是否必须: 否。
  • lifetime [string]: 记录合理化的时间长度。可接受的长度有 “300s”, “1.5h” 或 “2h45m”。有效的时间单位是 “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”。默认: “24h”。是否必须: 否。
  • ttl [string]: 记录的缓存时间长度。请注意,这是实验参数。是否必须: 否。
  • key [string]: ‘ipfs key list -l’ 中所列的待使用键或者有效节点 ID 的名字。默认: “self”。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Name": ""
    "Value": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/name/publish?arg=&
resolve=true&lifetime=24h&ttl=&key=self"

/api/v0/name/resolve

解析IPNS名字。

参数

  • arg [string]: 待解析的 IPNS 名。默认: 你的节点 ID。是否必须: 否。
  • recursive [bool]: 当结果是 IPNS 名时是否递归解析。默认: 否。是否必须: 否。
  • nocache [bool]: 是否弃用缓存条目。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Path": ""
}

cURL 示例

curl 
"http://localhost:5001/api/v0/name/resolve?arg=&recursive=false&nocache=false"

/api/v0/object/data

输出IPFS对象的原始字节。

参数

  • arg [string]: 待检索对象的键,格式是 base58 编码的multihash。是否必须: 是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

This endpoint returns a `text/plain` response body.

cURL 示例

 curl "http://localhost:5001/api/v0/object/data?arg="

/api/v0/object/diff

显示两个ipfs对象之间的差异。

参数

  • arg [string]: 被比较的对象。是否必须: 是。
  • arg [string]: 待比较的对象。是否必须: 是。
  • verbose [bool]: 是否输出其他信息。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Changes": [
        {
            "Type": ""
            "Path": ""
            "Before": ""
            "After": ""
        }
    ]
}

cURL 示例

curl 
"http://localhost:5001/api/v0/object/diff?arg=&arg=&verbose="

/api/v0/object/get

获取并序列化DAG节点。

参数

  • arg [string]: 待检索对象的键,格式是 base58 编码的multihash。是否必须: 是。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Links": [
        {
            "Name": ""
            "Hash": ""
            "Size": ""
        }
    ]
    "Data": ""
}

cURL 示例

curl "http://localhost:5001/api/v0/object/get?arg="

/api/v0/object/links

输出指定对象指向的链接。

参数

  • arg [string]: 待检索对象的键,格式是 base58 编码的multihash。是否必须: 是。
  • headers [bool]: 打印表头 (Hash, Size, Name)。默认: 否。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Hash": ""
    "Links": [
        {
            "Name": ""
            "Hash": ""
            "Size": ""
        }
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/object/links?arg=&headers=false"

/api/v0/object/new

从ipfs模板创建一个新对象。

参数

  • arg [string]: 待用模版。可选。是否必须: 否。

响应

请求成功,调用该路径将返回 Code 200 及如下结果:

{
    "Hash": ""
    "Links": [
        {
            "Name": ""
            "Hash": ""
            "Size": ""
        }
    ]
}

cURL 示例

curl "http://localhost:5001/api/v0/object/new?arg=