【发布时间】:2020-10-20 05:35:25
【问题描述】:
我在研究中能找到的唯一答案是从 PC 上的目录上传多个文件。这不是我想要做的。我正在尝试在 ipfs 中创建一个目录,然后使用 js-ipfs 和纯 JavaScript 将新文件添加到该目录,通常一次一个文件。
我从概念上理解 ipfs 中的目录只是另一个文件。但我不明白如何创建该目录(文件)并将其他文件添加到其中以供以后检索,尤其是使用 js-ipfs 和纯 javascript 代码。
我隐含地不使用 node.js,因此也没有反应,角度或 vue。
这适用于 ipfs 上没有目录的单个文件:
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/ipfs/dist/index.min.js"></script>
</head>
<script>
document.addEventListener('DOMContentLoaded', async () => {
const nodeId = 'ipfs-' + Math.random()
const node = await Ipfs.create({ repo: nodeId })
console.log("Your node: " + nodeId)
window.node = node
const status = node.isOnline() ? 'online' : 'offline'
console.log(`Node status: ${status}`)
async function addFile () {
for await (const { cid } of node.add('Some file content!')) {
console.log('successfully stored', cid)
cidhash=cid.toBaseEncodedString()
console.log(cidhash)
}
}
addFile()
})
</script>
<body>
</body>
</html>
如何创建一个目录并向其中添加一个文件,然后稍后将另一个文件添加到创建的目录中(伪代码)?
async function addFile () {
for await (const { directory, filename } of node.add('/someDirectory/someFilename','Some file content!')) {
console.log('successfully stored', directory, filename)
console.log(directory, filename)
}
}
【问题讨论】:
-
我认为无法使用 javascript 添加或读取文件
-
@ThanveerShah ipfs 是一个分布式文件系统。您是正确的,您无法在浏览器 JS 中创建普通的本地文件。
-
@JaredSmith,我一定会调查的,谢谢。这也可能超出主题,但是否可以使用它从项目目录中读取 zip 文件?
-
@ThanveerShah no.
-
@ThanveerShah 有一个脚本源 CDN 可用于将 Buffer 引入浏览器,但它非常不稳定 (wzrd.in/standalone/buffer)。无论哪种方式,这都不是我想要做的。我想创建一个包含文本内容的文件,但我想将该文件放在 IPFS 上创建的目录中。我不是要上传文件的本地目录。
标签: javascript ipfs js-ipfs