2016-10-01 251 views

回答

6

您只能使用IPNSipfs 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>

也看到這裏的文檔:https://ipfs.io/docs/commands/#ipfs-name-publish

0

不,你不能。 IPFS背後的概念是不變的,一個文件夾只是一個文件樹,所以在添加文件夾之後你不能「添加」文件,而沒有完整的文件夾。

1

這應該是容易的文件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一步完成
相關問題