给定一个相当大的文件夹,该文件夹已被推送到网络,并在本地删除。如何将文件添加到该文件夹中,而无需重新下载整个文件夹呢?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归档文件中