获取上传到IPFS的文件夹中单个文件的哈希值

问题描述

当我将.jpg文件文件上传到IPFS时,我得到了该文件夹的哈希值-很酷。

但是该文件夹中的每个文件也会被散列吗? 如果是这样,我如何获取每个文件的哈希值?

我基本上希望能够上传一整堆文件(例如500张图像),并一次或以编程方式完成所有操作,并将每个文件的哈希返回给我。

有什么办法吗?

解决方法

是的!从命令行中获取运行ipfs add -r <path to directory>

时添加的每个文件的CID( Content IDentifier,又名IPFS哈希)。
$ ipfs add -r gifs
added QmfBAEYhJp9ZjGvv8utB3Yv8uuuxsDKjv9rurkHRsYU3ih gifs/martian-iron-man.gif
added QmRBHTH3p4W2xAzgLxvdh8VJvAmWBgchwCr9G98EprwetE gifs/needs-more-dogs.gif
added QmZbffnCcV598QxsUy7WphXCAMZJULZAzy94tuFZzbFcdK gifs/satisfied-with-your-care.gif
added QmTxnmk85ESr97j2xLNFeVZW2Kk9FquhdswofchF8iDGFg gifs/stone-of-triumph.gif
added QmcN71Qh56oSg2YXsEXuf8o6u5CrBXbyYYzgMyAkdkcxxK gifs/thanks-dog.gif
added QmTnuLaivKc1Aj8LBf2iWBHDXsmedip3zSPbQcGi6BFwTC gifs

目录的根CID始终是列表中的最后一项。

您可以使用--quiet标志将该命令的输出限制为仅包含CID。

⨎ ipfs add -r gifs --quiet
QmfBAEYhJp9ZjGvv8utB3Yv8uuuxsDKjv9rurkHRsYU3ih
QmRBHTH3p4W2xAzgLxvdh8VJvAmWBgchwCr9G98EprwetE
QmZbffnCcV598QxsUy7WphXCAMZJULZAzy94tuFZzbFcdK
QmTxnmk85ESr97j2xLNFeVZW2Kk9FquhdswofchF8iDGFg
QmcN71Qh56oSg2YXsEXuf8o6u5CrBXbyYYzgMyAkdkcxxK
QmTnuLaivKc1Aj8LBf2iWBHDXsmedip3zSPbQcGi6BFwTC

或者,如果您知道目录的CID,则可以使用ipfs ls列出目录中包含的文件及其单个CID。在这里,我列出了上一个示例中gifs目录的内容

$ ipfs ls QmTnuLaivKc1Aj8LBf2iWBHDXsmedip3zSPbQcGi6BFwTC
QmfBAEYhJp9ZjGvv8utB3Yv8uuuxsDKjv9rurkHRsYU3ih 2252675 martian-iron-man.gif
QmRBHTH3p4W2xAzgLxvdh8VJvAmWBgchwCr9G98EprwetE 1233669 needs-more-dogs.gif
QmZbffnCcV598QxsUy7WphXCAMZJULZAzy94tuFZzbFcdK 1395067 satisfied-with-your-care.gif
QmTxnmk85ESr97j2xLNFeVZW2Kk9FquhdswofchF8iDGFg 1154617 stone-of-triumph.gif
QmcN71Qh56oSg2YXsEXuf8o6u5CrBXbyYYzgMyAkdkcxxK 2322454 thanks-dog.gif

您可以使用js-ipfs或go-ipfs中的核心api以编程方式进行操作。这是一个使用ipfs.addAll(files)-https://github.com/ipfs/js-ipfs/blob/master/docs/core-api/FILES.md#importing-files-from-the-file-system

的文档中的js-ipfs在node.js中从本地文件系统添加文件的示例。

https://www.youtube.com/watch?v=Z5zNPwMDYGg

上有一个非常有用的视频,介绍如何向IPFS添加文件。

还有https://github.com/ipfs/js-ipfs/tree/master/examples/ipfs-101

的js-ipfs演练

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...