Ipfs
IPFS 從節點添加和讀取文件
我目前正在 docker 容器中使用 IPFS。我可以使用 curl 向 API 發送 HTTP 請求。我創建了一個帶有一些文本的小文本文件。我想將包含內容的文件添加到節點並在之後檢索它。
所以我做了:
curl -F file=test.txt http://localhost:5001/api/v0/add
並收到回复
{"Name":"QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM", "Hash":"QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM", "Size":"16"}
現在我想讀取文件並將其保存在我的本地機器上。我用了
curl http://localhost:5001/api/v0/cat?arg=QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM
檢索文件。回應是
test.txt
我現在的問題是:如何獲取文件的內容?
要使用 HTTP API 下載 IPFS 對象,您需要使用
GET
. 正如您可以在文件中閱讀的那樣。/api/v0/get
下載 IPFS 對象。
論據
arg
$$ string $$:要輸出的 IPFS 對象的路徑。必需:是。output
$$ string $$:應該儲存輸出的路徑。必填:沒有。archive
$$ bool $$: 輸出一個 TAR 檔案。必填:沒有。compress
$$ bool $$:使用 GZIP 壓縮壓縮輸出。必填:沒有。compression-level
$$ int $$: 壓縮級別 (1-9)。必填:沒有。對於您的範例,類似以下內容應該有效:
$ curl "http://localhost:5001/api/v0/get?arg=QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM&archive=false" >> myfile % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2048 0 2048 0 0 666k 0 --:--:-- --:--:-- --:--:-- 666k $ cat myfile QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM0000644000000000000000000000001013567560642017027 0ustar0000000000000000test.txt
內容 (
test.txt
) 顯示在行尾。如您所見,我只使用了一個參數 (archive=false
) 並且不起作用,因為我仍在獲取tar
文件。請在此處閱讀。為了您的興趣,可以使用CLI 命令下載對象:
get <ref> Download IPFS objects
例子:
$ ipfs get QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM Saving file(s) to QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM 8 B / 8 B [========================================================================================================================================================] 100.00% 0s $ cat QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM test.txt
嘗試使用cat:
curl -X POST "https://ipfs.elastoscarrier.org/api/v0/cat?arg=QmYregh1mU7otV4s37hXLKnJ2fk2e8yFbJmU9L9cM6yrQM"
這將返回添加文件的內容。