Go-Ethereum
我們如何提取下載後由 swarm 生成的雜湊清單的內容?
據我所知,每當我們使用以下方式上傳文件或目錄時:
swarm up File
我們得到一個雜湊,它是包含上傳文件的清單。但是,我不確定在使用如下下載命令後如何提取此清單文件的內容:
swarm down bzz:/given_hash
我的目標是獲取上傳的原始文件。任何可以完成工作的想法或命令?
如果您查看清單本身,其內容的散列被列為資料結構中的條目。您可以使用該
bzz-raw
方案檢索雜湊的逐字數據,例如:$ echo foo > foo.txt $ swarm up foo.txt f3f1f9d14ac8413d928744cad75e5620661446dcfe7108cb269305af41b164c2 $ curl -X GET http://localhost:8500/bzz-raw:/f3f1f9d14ac8413d928744cad75e5620661446dcfe7108cb269305af41b164c2/ { "entries": [ { "hash": "01c9bc7199ce023fea5c28e07a81c2d61ba4a8f9bbed68a6eafab8ec8bbbfe0a", "contentType": "text/plain; charset=utf-8", "mode": 420, "size": 4, "mod_time": "2019-01-19T14:43:21-05:00" } ] } $ curl -X GET http://localhost:8500/bzz-raw:/01c9bc7199ce023fea5c28e07a81c2d61ba4a8f9bbed68a6eafab8ec8bbbfe0a/ foo
您也可以在不創建清單的情況下上傳。在這種情況下,返回的雜湊是對數據本身的引用:
$ echo bar > bar.txt $ swarm --manifest=false up bar.txt 211a9fade237e05307c86135af61d3d09f82324117bcac41d7dc91da53901018 $ curl -X GET http://localhost:8500/bzz-raw:/211a9fade237e05307c86135af61d3d09f82324117bcac41d7dc91da53901018/ bar
注意,這兩種情況下的上傳動作實際上等價於:
$ curl -X POST http://localhost:8500/bzz:/ --data @foo.txt $ curl -X POST http://localhost:8500/bzz-raw:/ --data-binary @bar.txt