![]() 我们已经学习了如何将文件添加到根目录,但是如何创建新目录?同样,此过程与您在自己的计算机上的命令行中所经历的非常相似。 MFS方法files.mkdir在指定的路径处创建一个新目录。例如,要将目录添加images到我们的根目录(/),我们可以这样做: await?ipfs.files.mkdir('/images') 可选parents属性,默认为false,指定是否应在给定路径中创建任何父目录(如果尚不存在)。上面我们不需要,因为新images目录是现有目录(/)的直接子目录。但是,如果我们想创建一个嵌套在其他还不存在的新目录下,我们需要明确设置的值 parents来true,像这样: await?ipfs.files.mkdir('/my/beautiful/images',?{?parents:?true?}) 尽管创建缺失路径的目标是相似的,但请注意我们如何将{ parents: true }选项与一起使用,files.mkdir而不是{ create: true }与一起使用files.write。 MFS允许您像使用本地files.mv方法一样在目录之间移动文件。 该方法如下所示: await?ipfs.files.mv(...from,?to,?[options]) from是您要移动的内容的源路径。to是目标路径。 如果您的目标路径引用了尚不存在的父目录,则需要像使用一样使用该{ parents: true }选项files.mkdir。 您可以files.mv用来执行许多不同的操作: //?move?a?single?file?into?a?directory await?ipfs.files.mv('/source-file.txt',?'/destination-directory') //?move?multiple?files?into?a?directory?(note?the?two?acceptable?formats) await?ipfs.files.mv('/source-file-1.txt',?'/source-file-2.txt',?'/destination-directory') await?ipfs.files.mv(['/source-file-1.txt',?'/source-file-2.txt'],?'/destination-directory') //?move?a?directory?into?another?directory await?ipfs.files.mv('/source-directory',?'/destination-directory') //?overwrite?the?contents?of?a?destination?file?with?the?contents?of?a?source?file await?ipfs.files.mv('/source-file.txt',?'/destination-file.txt') 与的不同之处files.mv在于,该方法在将项目移动到目标路径时将其从源路径中删除,该files.cp方法允许您将文件或目录复制到新位置,同时在源位置保持原样。 该方法如下所示: await?ipfs.files.cp(...from,?to,?[options]) 但是,您现在有两个的格式选项from。您可以传递: 您自己节点中文件或目录的现有MFS路径(例如/my-dir/my-file.txt) 您或对等方(例如/ipfs/QmWGeRAEgtsHW3ec7U4qW2CyVy7eA2mFRVbk1nb24jFyks)托管的文件或目录的IPFS路径 请注意,IPFS路径以/ipfs/CID 开头和结尾。 正如您所看到的那样files.mv,它to是MFS中的目标路径,并且有一个选项{ parents: true }可用于创建尚不存在的父目录。 您可以files.cp用来执行许多不同的操作: //?copy?a?single?file?into?a?directory await?ipfs.files.cp('/source-file.txt',?'/destination-directory') await?ipfs.files.cp('/ipfs/QmWGeRAEgtsHW3ec7U4qW2CyVy7eA2mFRVbk1nb24jFyks',?'/destination-directory') //?copy?multiple?files?into?a?directory?(note?the?two?acceptable?formats?with?or?without?[?]) await?ipfs.files.cp('/source-file-1.txt',?'/source-file-2.txt',?'/destination-directory') await?ipfs.files.cp(['/source-file-1.txt',?'/source-file-2.txt'],?'/destination-directory') await?ipfs.files.cp('/ipfs/QmWGeRAEgtsHW3ec7U4qW2CyVy7eA2mFRVbk1nb24jFyks','/ipfs/QmWGeRAEgtsHW3jk7U4qW2CyVy7eA2mFRVbk1nb24jFyre',?'/destination-directory') await?ipfs.files.cp(['/ipfs/QmWGeRAEgtsHW3ec7U4qW2CyVy7eA2mFRVbk1nb24jFyks','/ipfs/QmWGeRAEgtsHW3jk7U4qW2CyVy7eA2mFRVbk1nb24jFyre'],?'/destination-directory') //?copy?a?directory?into?another?directory await?ipfs.files.cp('/source-directory',?'/destination-directory') await?ipfs.files.cp('/ipfs/QmWGeRAEgtsHW3ec7U4qW2CyVy7eA2mFRVbk1nb24jFyks',?'/destination-directory') 如果您从IPFS路径复制文件而未明确分配文件名,则IPFS会将其name属性设置为hash。要指定更友好的文件名,您需要将其附加到目标路径,如下所示: await?ipfs.files.cp('/ipfs/QmWGeRAEgtsHW3ec7U4qW2CyVy7eA2mFRVbk1nb24jFyks',?'/destination-directory/fab-file.txt') MFS有一种files.read方法,允许您在缓冲区中显示文件的内容。这使我们能够轻松读取.txt文件的内容。 该方法采用以下格式: await?ipfs.files.read(path,?[options]) 该path提供的是读取文件的路径,它必须指向一个文件,而不是一个目录。 该files.read方法返回一个Buffer,可以使用method将其转换为字符串toString('utf8')。例如: let?bufferedContents?=?await?ipfs.files.read('/directory/some-file.txt')?//?a?buffer let?contents?=?bufferedContents.toString('utf8')?//?a?string 要么 let?contents?=?(await?ipfs.files.read('/directory/some-file.txt')).toString('utf8')?//?a?string //?notice?the?parentheses?around?the?entire?await?statement 当您准备好在现实世界中尝试此操作时,应注意,files.read根据读取的文件内容,该方法可能会导致占用大量内存。您可能想探索files.readReadableStreamor files.readPullStream方法。 —- 编译者/作者:FilCloud 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
IPFS:可变文件系统(二)
2019-11-27 FilCloud 来源:区块链网络
LOADING...
相关阅读:
- 以太坊网络:Augur平台发布第2版2020-07-30
- Augur部署V2升级,集成DeFi的功能2020-07-29
- 社区生态|BTFS网络V1.3.4版本已发布2020-07-27
- 美国货币监管局为加密货币亮绿灯:IPFS/Filecoin上线重大利好2020-07-26
- STO(证券代币发行)所需文件发行通证有什么好处2020-07-23