文件計劃 | 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="
}
快速索引
路徑列表
/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": "<string>"
"Hash": "<string>"
"Bytes": "<int64>"
"Size": "<string>"
}
cURL 示例
curl -F [email protected]
"http://localhost:5001/api/v0/add?recursive=false&quiet=<value>&
quieter=<value>&silent=<value>&progress=<value>&trickle=<value>&
only-hash=<value>&wrap-with-directory=<value>&hidden=
<value>&chunker= <value>&pin=true&raw-leaves=<value>&nocopy=
<value>&fscache=<value>&cid-version=0&hash=sha2-256"
/api/v0/bitswap/ledger
顯示當前節點的賬本資訊。
引數
- arg [string]: 監測賬本的節點ID。是否必要:是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Peer": "<string>"
"Value": "<float64>"
"Sent": "<uint64>"
"Recv": "<uint64>"
"Exchanged": "<uint64>"
}
cURL 示例
curl "http://localhost:5001/api/v0/bitswap/ledger?arg=<peer>"
/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": "<int>"
"Wantlist": [
"<string>"
]
"Peers": [
"<string>"
]
"BlocksReceived": "<uint64>"
"DataReceived": "<uint64>"
"BlocksSent": "<uint64>"
"DataSent": "<uint64>"
"DupBlksReceived": "<uint64>"
"DupDataReceived": "<uint64>"
}
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=<key>"
/api/v0/bitswap/wantlist
顯示wantlist中的當前塊列表。
引數
- peer [string]: 需要展示wantlist的結點。是否必須:否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Keys": [
"<string>"
]
}
cURL 示例
curl "http://localhost:5001/api/v0/bitswap/wantlist?peer=<value>"
/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=<key>"
/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": "<string>"
"Size": "<int>"
}
cURL 示例
curl -F [email protected] "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": "<string>"
"Error": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/block/rm?arg=<hash>&force=false&quiet=false"
/api/v0/block/stat
列印原始IPFS塊的資訊。
引數
- arg [string]: 當前塊的base58 multihash。是否必須:是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Key": "<string>"
"Size": "<int>"
}
cURL 示例
curl "http://localhost:5001/api/v0/block/stat?arg=<key>"
/api/v0/bootstrap/add/default
向bootstrap列表中新增預設peer。
引數
此介面不需要傳入引數。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Peers": [
"<string>"
]
}
cURL 示例
curl "http://localhost:5001/api/v0/bootstrap/add/default"
/api/v0/bootstrap/list
顯示bootstrap列表中的peers。
引數
此介面不需要傳入引數。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Peers": [
"<string>"
]
}
cURL 示例
curl "http://localhost:5001/api/v0/bootstrap/list"
/api/v0/bootstrap/rm/all
移除bootstrap列表中的所有peers。
引數
此介面不需要傳入引數。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Peers": [
"<string>"
]
}
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=<ipfs-path>"
/api/v0/commands
顯示所有有效指令。
引數
- flags [bool]: 是否顯示命令標記。預設: 否。是否必須:否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Name": "<string>"
"Subcommands": [
{
"Name": "<string>"
"Subcommands": [
{
"Name": "<string>"
"Subcommands": [
...
]
"Options": [
...
]
}
]
"Options": [
{
"Names": [
...
]
}
]
}
]
"Options": [
{
"Names": [
"<string>"
]
}
]
}
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 [email protected] "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=<ref>"
/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": "<string>"
}
cURL 示例
curl -F [email protected] "http://localhost:5001/api/v0/dag/put?
format=cbor&input-enc=json&pin=false&hash=<value>"
/api/v0/dag/resolve
解析ipId塊。
引數
- arg [string]: 需要解析的路徑。是否必須: 是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Cid": "<string>"
"RemPath": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/dag/resolve?arg=<ref>"
/api/v0/dht/findpeer
查詢和節點ID相關聯的多地址的所有DHT資訊。
引數
- arg [string]: 需要查詢的節點ID。是否必須: 是。
- verbose [bool]: 是否輸出其他資訊。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"ID": "<string>"
"Type": "<int>"
"Responses": [
{
"ID": "<string>"
"Addrs": [
"<object>"
]
}
]
"Extra": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/dht/findpeer?arg=<peerID>&verbose=false"
/api/v0/dht/findprovs
在DHT網路中找到有指定值的節點。
引數
- arg [string]: 有指定值的節點的鍵。是否必須: 是。
- verbose [bool]: 是否輸出其他資訊。預設: 否。是否必須: 否。
- num-providers [int]: 有指定值的節點數量。預設: 20。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"ID": "<string>"
"Type": "<int>"
"Responses": [
{
"ID": "<string>"
"Addrs": [
"<object>"
]
}
]
"Extra": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/dht/findprovs?arg=<key>&
verbose=false&num-providers=20"
/api/v0/dht/get
給定一個鍵,在DHT表中查詢最佳值。
引數
- arg [string]: 需要查詢值的鍵。是否必須: 是。
- verbose [bool]: 是否輸出其他資訊。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"ID": "<string>"
"Type": "<int>"
"Responses": [
{
"ID": "<string>"
"Addrs": [
"<object>"
]
}
]
"Extra": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/dht/get?arg=<key>&verbose=false"
/api/v0/dht/provide
向網路宣佈正在提供給定的值。
引數
- arg [string]: 需要接受記錄的所有節點的鍵。是否必須: 是。
- verbose [bool]: 是否輸出其他資訊。預設: 否。是否必須: 否。
- recursive [bool]: 是否遞迴新增目錄路徑。是否輸出其他資訊。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"ID": "<string>"
"Type": "<int>"
"Responses": [
{
"ID": "<string>"
"Addrs": [
"<object>"
]
}
]
"Extra": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/dht/provide?arg=<key>&verbose=false&recursive=false"
/api/v0/dht/put
往DHT網路中寫入key-value值。
引數
- arg [string]: 存取特定值的節點的鍵。是否必須: 是。
- arg [string]: 要儲存的值。是否必須: 是。
- verbose [bool]: 是否輸出其他資訊。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"ID": "<string>"
"Type": "<int>"
"Responses": [
{
"ID": "<string>"
"Addrs": [
"<object>"
]
}
]
"Extra": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/dht/put?arg=<key>&arg=<value>&verbose=false"
/api/v0/dht/query
通過查詢DHT網路找到與給定節點最近的節點。
引數
- arg [string]: 針對此次查詢的節點 ID。是否必須: 是。
- verbose [bool]: 是否輸出其他資訊。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"ID": "<string>"
"Type": "<int>"
"Responses": [
{
"ID": "<string>"
"Addrs": [
"<object>"
]
}
]
"Extra": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/dht/query?arg=<peerID>&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=<time>"
/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": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/dns?arg=<domain-name>&recursive=false"
/api/v0/file/ls
列出Unix檔案系統物件的目錄內容。
引數
- arg [string]: 所列出 ipfs 物件的路徑。是否必須: 是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Arguments": {
"<string>": "<string>"
}
"Objects": {
"<string>": {
"Hash": "<string>"
"Size": "<uint64>"
"Type": "<string>"
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
"Type": "<string>"
}
]
}
}
}
cURL 示例
curl "http://localhost:5001/api/v0/file/ls?arg=<ipfs-path>"
/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=<source>&arg=<dest>"
/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=<path>"
/api/v0/files/ls
列出本地可變名稱空間中的目錄。
引數
- arg [string]: 顯示列表的路徑。預設: ‘/’。是否必須: 否。
- l [bool]: 是否使用長列表格式。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Entries": [
{
"Name": "<string>"
"Type": "<int>"
"Size": "<int64>"
"Hash": "<string>"
}
]
}
cURL 示例
curl "http://localhost:5001/api/v0/files/ls?arg=<path>&l=<value>"
/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=<path>&parents=<value>"
/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=<source>&arg=<dest>"
/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=<path>&offset=<value>&count=<value>"
/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=<path>&recursive=<value>"
/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": "<string>"
"Size": "<uint64>"
"CumulativeSize": "<uint64>"
"Blocks": "<int>"
"Type": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/files/stat?arg=<path>&format=<hash>
Size: <size> CumulativeSize: <cumulsize> ChildBlocks: <childs>
Type: <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 [email protected] "http://localhost:5001/api/v0/files/write?arg=<path>&
offset=<value>&create=<value>&truncate=<value>&count=<value>"
/api/v0/filestore/dups
列出filestore和標準塊儲存中的塊。
引數
此介面不需要傳入引數。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Ref": "<string>"
"Err": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/filestore/dups"
/api/v0/filestore/ls
列出filestore中的物件列表。
引數
- arg [string]: 需要列出的物件的Cid。是否必須: 否。
- file-order [bool]: 是否根據備份檔案的路徑順序對結果進行排序。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Status": "<int32>"
"ErrorMsg": "<string>"
"Key": "<string>"
"FilePath": "<string>"
"Offset": "<uint64>"
"Size": "<uint64>"
}
cURL 示例
curl "http://localhost:5001/api/v0/filestore/ls?arg=<obj>&file-order=<value>"
/api/v0/filestore/verify
驗證filestore中的物件。
引數
- arg [string]: 待驗證的物件的Cid。是否必須: 否。
- file-order [bool]: 是否根據備份檔案的路徑順序對結果進行驗證。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Status": "<int32>"
"ErrorMsg": "<string>"
"Key": "<string>"
"FilePath": "<string>"
"Offset": "<uint64>"
"Size": "<uint64>"
}
cURL 示例
curl "http://localhost:5001/api/v0/filestore/verify?arg=<obj>&file-order=<value>"
/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=<ipfs-path>&output= <value>&archive=false&compress=false&compression-level=-1"
/api/v0/id
顯示ipfs節點id。
引數
- arg [string]: 需要查詢的節點的 ID。是否必須: 否。
- format [string]: 備選的輸出格式。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"ID": "<string>"
"PublicKey": "<string>"
"Addresses": [
"<string>"
]
"AgentVersion": "<string>"
"ProtocolVersion": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/id?arg=<peerid>&format=<value>"
/api/v0/key/gen
建立一個新的鍵值對。
引數
- arg [string]: 新建鍵的名字。是否必須: 是。
- type [string]: 新建鍵的型別 [rsa, ed25519]。是否必須: 否。
- size [int]: 新建鍵的長度。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Name": "<string>"
"Id": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/key/gen?arg=<name>&type=<value>&size=<value>"
/api/v0/key/list
顯示本地所有鍵值對。
引數
- l [bool]: 是否顯示鍵的其他資訊。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Keys": [
{
"Name": "<string>"
"Id": "<string>"
}
]
}
cURL 示例
curl "http://localhost:5001/api/v0/key/list?l=<value>"
/api/v0/key/rename
重新命名一個鍵值對。
引數
- arg [string]: 需要重新命名的鍵現在的名字。是否必須: 是。
- arg [string]: 鍵的新名字。是否必須: 是。
- force [bool]: 是否允許覆蓋存在的鍵。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Was": "<string>"
"Now": "<string>"
"Id": "<string>"
"Overwrite": "<bool>"
}
cURL 示例
curl "http://localhost:5001/api/v0/key/rename?arg=<name>&arg=<newName>&force=<value>"
/api/v0/key/rm
移除一個鍵值對。
引數
- arg [string]: 待移除的鍵的名字。是否必須: 是。
- l [bool]: 是否顯示鍵的其他資訊。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Keys": [
{
"Name": "<string>"
"Id": "<string>"
}
]
}
cURL 示例
curl "http://localhost:5001/api/v0/key/rm?arg=<name>&l=<value>"
/api/v0/log/level
修改日誌級別。
引數
- arg [string]: 子系統登日誌識別符。所有子系統都使用 ‘all’。是否必須: 是。
- arg [string]: 日誌級別, 從 debug, info, warning, error 到 critical,其中最冗長的日誌標記為 ‘debug’,最短的日誌標記為 ‘critical’。是否必須: 是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Message": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/log/level?arg=<subsystem>&arg=<level>"
/api/v0/log/ls
列出日誌子系統。
引數
此介面不需要傳入引數。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Strings": [
"<string>"
]
}
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": "<string>"
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
"Type": "<int32>"
}
]
}
]
}
cURL 示例
curl "http://localhost:5001/api/v0/ls?arg=<ipfs-path>&headers=false&resolve-type=true"
/api/v0/mount
將IPFS掛載到檔案系統(只讀)。
引數
- ipfs-path [string]: IPFS 掛載路徑。是否必須: 否。
- ipns-path [string]: IPNS 掛載路徑。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"IPFS": "<string>"
"IPNS": "<string>"
"FuseAllowOther": "<bool>"
}
cURL 示例
curl "http://localhost:5001/api/v0/mount?ipfs-path=<value>&ipns-path=<value>"
/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": "<string>"
"Value": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/name/publish?arg=<ipfs-path>&
resolve=true&lifetime=24h&ttl=<value>&key=self"
/api/v0/name/resolve
解析IPNS名字。
引數
- arg [string]: 待解析的 IPNS 名。預設: 你的節點 ID。是否必須: 否。
- recursive [bool]: 當結果是 IPNS 名時是否遞迴解析。預設: 否。是否必須: 否。
- nocache [bool]: 是否棄用快取條目。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Path": "<string>"
}
cURL 示例
curl
"http://localhost:5001/api/v0/name/resolve?arg=<name>&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=<key>"
/api/v0/object/diff
顯示兩個ipfs物件之間的差異。
引數
- arg [string]: 被比較的物件。是否必須: 是。
- arg [string]: 待比較的物件。是否必須: 是。
- verbose [bool]: 是否輸出其他資訊。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Changes": [
{
"Type": "<int>"
"Path": "<string>"
"Before": "<string>"
"After": "<string>"
}
]
}
cURL 示例
curl
"http://localhost:5001/api/v0/object/diff?arg=<obj_a>&arg=<obj_b>&verbose=<value>"
/api/v0/object/get
獲取並序列化DAG節點。
引數
- arg [string]: 待檢索物件的鍵,格式是 base58 編碼的multihash。是否必須: 是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
}
]
"Data": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/object/get?arg=<key>"
/api/v0/object/links
輸出指定物件指向的連結。
引數
- arg [string]: 待檢索物件的鍵,格式是 base58 編碼的multihash。是否必須: 是。
- headers [bool]: 打印表頭 (Hash, Size, Name)。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Hash": "<string>"
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
}
]
}
cURL 示例
curl "http://localhost:5001/api/v0/object/links?arg=<key>&headers=false"
/api/v0/object/new
從ipfs模板建立一個新物件。
引數
- arg [string]: 待用模版。可選。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Hash": "<string>"
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
}
]
}
cURL 示例
curl "http://localhost:5001/api/v0/object/new?arg=<template>"
/api/v0/object/patch/add-link
向給定物件新增連結。
引數
- arg [string]: 待調整節點的雜湊值。是否必須: 是。
- arg [string]: 新建連線的名字。是否必須: 是。
- arg [string]: 需要新增連線的 IPFS 物件。是否必須: 是。
- create [bool]: 是否建立中間節點。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Hash": "<string>"
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
}
]
}
cURL 示例
curl
"http://localhost:5001/api/v0/object/patch/add-link?arg=
<root>&arg=<name>&arg=<ref>&create=false"
/api/v0/object/patch/append-data
將資料追加到dag節點的資料段。
引數
- arg [string]: 待調整節點的雜湊值。是否必須: 是。
- arg [file]: 待追加資料。是否必須: 是。
請求體
引數‘data’是檔案型別。該介面需要請求體’multipart/form-data’的檔案。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
“Hash”: “”
“Links”: [
{
“Name”: “”
“Hash”: “”
“Size”: “”
}
]
}
cURL 示例
curl -F file=
@myfile "http://localhost:5001/api/v0/object/patch/append-data?arg=<root>"
/api/v0/object/patch/rm-link
從物件中刪除連結。
引數
- arg [string]: 待調整節點的雜湊值。是否必須: 是。
- arg [string]: 待移除連線的名字。是否必須: 是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Hash": "<string>"
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
}
]
}
cURL 示例
curl
"http://localhost:5001/api/v0/object/patch/rm-link?arg=<root>&arg=<link>"
/api/v0/object/patch/set-data
設定IPFS物件的資料欄位。
引數
- arg [string]: 待調整節點的雜湊值。是否必須: 是。
- arg [file]: 待設定物件的資料欄位。是否必須: 是。
請求體
引數‘data’是檔案型別。該介面需要請求體’multipart/form-data’的檔案。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Hash": "<string>"
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
}
]
}
cURL 示例
curl -F file=
@myfile "http://localhost:5001/api/v0/object/patch/set-data?arg=<root>"
/api/v0/object/put
將輸入儲存為DAG物件,列印其鍵。
引數
- arg [file]: 需要被儲存為 DAG 物件的資料。是否必須: 是。
- inputenc [string]: 輸入資料的編碼型別,包括 “protobuf”和 “json”。預設: “json”。是否必須: 否。
- datafieldenc [string]: 資料域的編碼型別,包括 “text” 和 “base64”。預設: “text”。是否必須: 否。
- pin [bool]: 在新增物件時是否對其進行本地持久化儲存。預設: 否。是否必須: 否。
請求體
引數 ‘data’ 是檔案型別。該介面需要請求體 ‘multipart/form-data’ 的檔案。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Hash": "<string>"
"Links": [
{
"Name": "<string>"
"Hash": "<string>"
"Size": "<uint64>"
}
]
}
cURL 示例
curl -F [email protected] "http://localhost:5001/api/v0/object/
put?inputenc=json&datafieldenc=text&pin=false"
/api/v0/object/stat
獲取DAG節點的資訊。
引數
- arg [string]: 檢索物件的鍵,格式是 base58 編碼的 multihash。是否必須: 是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Hash": "<string>"
"NumLinks": "<int>"
"BlockSize": "<int>"
"LinksSize": "<int>"
"DataSize": "<int>"
"CumulativeSize": "<int>"
}
cURL 示例
curl "http://localhost:5001/api/v0/object/stat?arg=<key>"
/api/v0/p2p/listener/close
關閉p2p listener。
引數
- arg [string]: P2P 監聽協議。是否必須: 否。 Required: no.
- all [bool]: 是否關閉所有監聽。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
This endpoint returns a `text/plain` response body.
cURL 示例
curl "http://localhost:5001/api/v0/p2p/listener/close?arg=<Protocol>&all=false"
/api/v0/p2p/listener/ls
列舉活躍的p2p 監聽。
引數
- headers [bool]: 打印表頭 (HandlerID, Protocol, Local, Remote)。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Listeners": [
{
"Protocol": "<string>"
"Address": "<string>"
}
]
}
cURL 示例
curl "http://localhost:5001/api/v0/p2p/listener/ls?headers=false"
/api/v0/p2p/listener/open
將p2p連線轉發到網路多地址。
引數
- arg [string]: 協議標示符。是否必須: 是。
- arg [string]: 請求處理的程式地址。是否必須: 是。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
This endpoint returns a `text/plain` response body.
cURL 示例
curl
"http://localhost:5001/api/v0/p2p/listener/open?arg=<Protocol>&arg=<Address>"
/api/v0/p2p/stream/close
關閉活躍的p2p流。
引數
- arg [string]: 流的 HandlerID。是否必須: 否。
- all [bool]: 是否關閉所有流。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
This endpoint returns a `text/plain` response body.
cURL 示例
curl "http://localhost:5001/api/v0/p2p/stream/close?arg=<HandlerID>&all=false"
/api/v0/p2p/stream/dial
撥號到p2p Listener。
引數
- arg [string]: 需要連線的遠端節點。是否必須: 是。
- arg [string]: 協議標示符。是否必須: 是。
- arg [string]: 連線監聽地址。預設: /ip4/127.0.0.1/tcp/0)。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
This endpoint returns a `text/plain` response body.
cURL 示例
curl
"http://localhost:5001/api/v0/p2p/stream/dial?arg=<Peer>&arg=<Protocol>&arg=<BindAddress>"
/api/v0/p2p/stream/ls
列出活躍的p2p流。
引數
- headers [bool]: 打印表頭 (HagndlerID, Protocol, Local, Remote)。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Streams": [
{
"HandlerID": "<string>"
"Protocol": "<string>"
"LocalPeer": "<string>"
"LocalAddress": "<string>"
"RemotePeer": "<string>"
"RemoteAddress": "<string>"
}
]
}
cURL 示例
curl "http://localhost:5001/api/v0/p2p/stream/ls?headers=false"
/api/v0/pin/add
將物件固定到本地儲存。
引數
- arg [string]: 傳送回顯資訊的物件的訪問路徑。 是否必須: 是。
- recursive [bool]: 是否遞迴地本地持久化與指定物件連線的物件。預設: 是。是否必須: 否。
- progress [bool]: 是否列印程序。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Pins": [
"<string>"
]
"Progress": "<int>"
}
cURL 示例
curl "http://localhost:5001/api/v0/pin/add?arg=<ipfs-path>&
recursive=true&progress=<value>"
/api/v0/pin/ls
列出固定到本地儲存的物件。
引數
- arg [string]: 待列出的物件的訪問路徑。是否必須: 否。
- type [string]: 待列出的本地持久化鍵的型別,包括 “direct”, “indirect”, “recursive”, 和 “all”。預設: “all”。是否必須: 否。
- quiet [bool]: 是否僅輸出物件的雜湊值。預設: 否。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Keys": {
"<string>": {
"Type": "<string>"
}
}
}
cURL 示例
curl "http://localhost:5001/api/v0/pin/ls?arg=<ipfs-path>&type=all&quiet=false"
/api/v0/pin/rm
從本地儲存中刪除固定物件。
引數
- arg [string]: 要刪除的物件的訪問路徑。是否必須: 是。
- recursive [bool]: 是否遞迴刪除與固定物件相連的物件。預設: 是。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Pins": [
"<string>"
]
}
cURL 示例
curl "http://localhost:5001/api/v0/pin/rm?arg=<ipfs-path>&recursive=true"
/api/v0/pin/update
更新一個recursive pin。
引數
- arg [string]: 舊物件路徑。是否必須: 是。
- arg [string]: 需要本地持久化的物件的訪問路徑。是否必須: 是。
- unpin [bool]: 刪除舊的本地持久化物件。預設: 是。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Pins": [
"<string>"
]
}
cURL 示例
curl
"http://localhost:5001/api/v0/pin/update?arg=<from-path>&arg=<to-path>&unpin=true"
/api/v0/pin/verify
驗證遞迴pins是否完成。
引數
- verbose [bool]: 是否輸出連續本地持久化物件的雜湊值。是否必須: 否。
- quiet [bool]: 是否僅輸出非連續本地持久化物件的雜湊值。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Cid": "<string>"
"PinStatus": {
"Ok": "<bool>"
"BadNodes": [
{
"Cid": "<string>"
"Err": "<string>"
}
]
}
}
cURL 示例
curl "http://localhost:5001/api/v0/pin/verify?verbose=<value>&quiet=<value>"
/api/v0/ping
向IPFS主機發送echo請求包。
引數
- arg [string]: 需要本地持久化的節點 ID。是否必須: 是。
- count [int]: 需要本地持久化節點的數量。預設: “10”。是否必須: 否。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Success": "<bool>"
"Time": "<int64>"
"Text": "<string>"
}
cURL 示例
curl "http://localhost:5001/api/v0/ping?arg=<peer ID>&count=10"
/api/v0/pubsub/ls
按名稱列出訂閱的主題。
引數
此介面不需要傳入引數。
響應
請求成功,呼叫該路徑將返回 Code 200 及如下結果:
{
"Strings": [
"<string>"
]
}
cURL 示例
curl "http://localhost:5001/api/v0/pubsub/ls"
/api/v0/pubsub/peers
列出我們現在正在連線的節點。