給定一個相當大的文件夾,該文件夾已被推送到網絡,並在本地刪除。如何將文件添加到該文件夾中,而無需重新下載整個文件夾呢?IPFS:如何將文件添加到現有文件夾?
回答
您只能使用IPNS與ipfs get
重新下載後,這應該是快,如果它仍然寄託到本地存儲做到這一點:
(1)首先添加(即重新添加)您文件夾遞歸到ipfs:ipfs add -r /path/to/folder
。最後一條stdout行的第二列具有您剛剛添加的父文件夾的ipfs散列。 (原始文件仍然相同,因此哈希值也將相同。)
(2)然後發佈該哈希值:ipfs name publish /ipfs/<CURRENT_PARENTFOLDER_HASH>
。這將返回您的對等ID,並且您可以將鏈接分享爲/ipns/<PEER_ID>
;重複此步驟(ipfs name publish
),只要文件夾內容(因此父文件夾散列)發生更改。然後ipns對象將始終指向您的文件夾的最新版本。 (3)如果您計劃共享很多內容,則可以爲每個共享的文件夾創建一個新的密鑰對:ipfs key gen --type=rsa --size=2048 new-share-key
...然後使用該密鑰(而不是默認密鑰)來發布(以及稍後重新發布)該文件夾:ipfs name publish --key=new-share-key /ipfs/<CURRENT_PARENTFOLDER_HASH>
不,你不能。 IPFS背後的概念是不變的,一個文件夾只是一個文件樹,所以在添加文件夾之後你不能「添加」文件,而沒有完整的文件夾。
這應該是容易的文件API。假設您已經添加了新的文件,以IPF問題並獲得其散列,嘗試:
ipfs files cp /ipfs/QmExistingLargeFolderHash /folder-to-modify
ipfs file cp /ipfs/QmNewFileHash /folder-to-modify/new-file
當然,這不是一個文件添加到現有的文件夾(因爲文件夾和文件是不可變的),它只是創建一個副本/新版本的文件夾添加了新文件。因此,將有一個新的哈希:
ipfs files ls -l/# to get the new hash of the folder
的文件API不腳被引用的文件或檢索所有子文件夾,除非必要,所以這可以在網絡中的任何節點上,而不會產生大量的流量來實現。
[編輯] 過了一會兒,我瞭解到,有一些事情你可以做:
而不是
ipfs file cp /ipfs/QmNewFileHash /folder-to-modify/new-file
你可以使用
ipfs files write -te
如果你還沒有添加文件到ipfs呢。- 您可以啓用HTTP API的寫入功能,以使用
PUT
請求來獲取文件夾新版本的散列。請參閱this blogpost。 - 您可以通過保險絲掛載ipns並寫入
…/ipns/local
。 - 而且可能是最好的:您可以使用
ipfs object patch add-link /ipfs/QmExistingLargeFolderHash new-file /ipfs/QmNewFileHash
一步完成
- 1. 如何將文件添加到SVN的現有文件夾?
- 2. 如何將現有文件添加到Xcode4中的資源文件夾中
- 3. 如何添加文件夾,子文件夾內現有的zip文件
- 4. 如何使用RubyZIP將現有文件添加到ZIP文件?
- 5. 如何將現有的子文件夾(帶/不帶子文件/文件夾)添加到解決方案中?
- 6. 如何將java類添加到jar文件中的文件夾
- 7. 如何將文件和文件夾添加到GitHub倉庫?
- 8. 如何將行添加到文件夾內的每個文件?
- 9. 如何將文件添加到iso根文件夾?
- 10. 如何將文件添加到啓動文件夾?
- 11. 如何將文件添加到XCode中的資源文件夾?
- 12. Xcode:如何將文件添加到文件夾引用
- 13. 如何將現有文件夾的所有子文件夾和內容添加到解決方案?
- 14. 如何將文本添加到文件夾中所有文件的開頭?
- 15. Visual Studio 2010:添加現有文件夾
- 16. 將文件夾添加到現有的SVN
- 17. 將現有文件夾添加到TFS源代碼控制
- 18. 將現有的xcdatamodeld「文件夾」添加到XCode
- 19. 將CakePHP文件夾添加到現有域
- 20. Visual Studio Extensibility:將現有文件夾添加到項目
- 21. 將sass文件夾添加到codeigniter公用文件夾
- 22. 將Zend文件夾添加到bash_profile
- 23. 將asp.net.mvc添加到ASP.NET:Controllers文件夾
- 24. 將文件夾導航添加到msi
- 25. 將文件夾添加到git
- 26. wxpython將文件夾添加到listctrl?
- 27. iPhone - 將UIImage添加到文件夾
- 28. 將snippet的文件夾添加到snipmate
- 29. 將文件夾添加到classpath中
- 30. 將文件添加到現有的Zip歸檔文件中