IPFS可变文件系统:将文件添加到MFS

2020-04-10 13:48:53

现在我们已经可以在浏览器中访问文件了,让我们看看如何将它们添加到IPFS。

  现在我们已经可以在浏览器中访问文件了,让我们看看如何将它们添加到IPFS。

  要将文件添加到IPFS,我们可以使用MFS files.write方法,如下所示:

  await ipfs.files.write(path, content, [options])

  MFS files.write方法可以接受的文件content在一个形式缓冲器,ReadableStream,PullStream,斑点(仅在浏览器中),或串路径到一个文件(仅在Node.js的)。由于浏览器中的文件对象是一种Blob,因此我们很高兴!

  即使浏览器中的文件对象碰巧知道自己的文件名,但Blob通常并不知道,因此IPFS无法直接确定现有文件名。我们必须在中提供所需的文件名path。

  该path是你想你的IPFS实例中创建,包括所需的文件名的新路径。(请注意,这是我们正在描述的目标路径,而不是文件已在您的计算机上驻留的路径。)

  MFS files.write方法,就像您可能在自己的计算机上使用过的类似方法一样,实际上是为编辑现有文件的内容而构建的。但是,我们还可以通过提供boolean选项{ create: true }来使用它来创建一个全新的文件,以指示如果文件在给定路径中不存在,则应在该文件中创建该文件。

  因此,如果我们在浏览器中有一个文件对象,可以通过一个变量访问catPic它,并且想要将其添加到IPFS的根目录中并命名为cat.jpg,我们可以这样做:

  await ipfs.files.write('/cat.jpg', catPic, { create: true })

  如果需要,我们可以使用串联(字符串的连接)来创建相同的路径。如果文件名是文件对象的属性,这将很方便,就像在浏览器中一样。

  await ipfs.files.write('/' + catPic.name, catPic, { create: true })

  请注意,该files.write方法不提供返回值。

  稍后我们将研究如何将文件添加到除根目录之外的其他目录中。

  尝试一下!

  让我们使用MFS将一些文件添加到IPFS。由于files是一个表示当前可在浏览器中使用的files.write文件的数组,因此我们需要遍历该数组,并使用一次将我们找到的每个文件添加到IPFS。(仅上传一个文件?没问题!)

  将文件放在根目录(/)中,并确保在添加文件时在路径中包含每个文件的名称。(提示:浏览器中的文件对象将文件名存储为file.name)。确保设置选项,以便在给定路径下找不到新文件时创建一个新文件。


8.jpg

最新推荐