Helia
    Preparing search index...

    Interface UnixFS

    The UnixFS interface provides familiar filesystem operations to make working with UnixFS DAGs simple and intuitive.

    interface UnixFS {
        addAll(
            source: ImportCandidateStream,
            options?: Partial<AddOptions>,
        ): AsyncIterable<ImportResult>;
        addBytes(
            bytes: Uint8Array,
            options?: Partial<AddFileOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
        addByteStream(
            bytes: ByteStream,
            options?: Partial<AddFileOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
        addDirectory(
            dir?: Partial<DirectoryCandidate>,
            options?: Partial<AddFileOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
        addFile(
            file: FileCandidate,
            options?: Partial<AddFileOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
        cat(
            cid: CID,
            options?: Partial<CatOptions>,
        ): AsyncIterable<Uint8Array<ArrayBufferLike>>;
        chmod(
            cid: CID,
            mode: number,
            options?: Partial<ChmodOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
        cp(
            source: CID,
            target: CID,
            name: string,
            options?: Partial<CpOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
        ls(cid: CID, options?: Partial<LsOptions>): AsyncIterable<UnixFSEntry>;
        mkdir(
            cid: CID,
            dirname: string,
            options?: Partial<MkdirOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
        rm(
            cid: CID,
            path: string,
            options?: Partial<RmOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
        stat(
            cid: CID,
            options?: StatOptions,
        ): Promise<FileStats | DirectoryStats | RawStats>;
        stat(
            cid: CID,
            options?: ExtendedStatOptions,
        ): Promise<ExtendedFileStats | ExtendedDirectoryStats | ExtendedRawStats>;
        touch(
            cid: CID,
            options?: Partial<TouchOptions>,
        ): Promise<CID<unknown, number, number, Version>>;
    }
    Index

    Methods

    • Add all files and directories from the passed stream. This method wraps the importer export from the ipfs-unixfs-importer module - please see the docs for input/output types.

      Parameters

      Returns AsyncIterable<ImportResult>

      const source = [{
      path: './foo.txt',
      content: Uint8Array.from([0, 1, 2, 3])
      }, {
      path: './bar.txt',
      content: Uint8Array.from([4, 5, 6, 7])
      }]

      for await (const entry of fs.import(source)) {
      console.info(entry)
      }
    • Add a directory to your Helia node.

      Parameters

      Returns Promise<CID<unknown, number, number, Version>>

      If no path is specified, the returned CID will resolve to an empty directory.

      const cid = await fs.addDirectory()

      console.info(cid) // empty directory CID

      If a path is specified, the CID will resolve to a directory that contains an empty directory with the specified name.

      const cid = await fs.addDirectory({
      path: 'my-dir'
      })

      console.info(cid) // containing directory CID

      const stat = await fs.stat(cid, {
      path: 'my-dir'
      })

      console.info(stat.cid) // empty directory CID
    • Add a file to your Helia node with metadata. The returned CID will resolve to a directory with one file entry.

      If you don't care about file names and just want a CID that will resolve to the contents of the file, use addBytes or addByeStream instead.

      Parameters

      Returns Promise<CID<unknown, number, number, Version>>

      const cid = await fs.addFile({
      path: './foo.txt',
      content: Uint8Array.from([0, 1, 2, 3]),
      mode: 0x755,
      mtime: {
      secs: 10n,
      nsecs: 0
      }
      })

      console.info(cid)
    • Change the permissions on a file or directory in a DAG

      Parameters

      Returns Promise<CID<unknown, number, number, Version>>

      const beforeCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
      const beforeStats = await fs.stat(beforeCid)

      const afterCid = await fs.chmod(cid, 0x755)
      const afterStats = await fs.stat(afterCid)

      console.info(beforeCid, beforeStats)
      console.info(afterCid, afterStats)
    • Add a file or directory to a target directory.

      Parameters

      Returns Promise<CID<unknown, number, number, Version>>

      const fileCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
      const directoryCid = await fs.addDirectory()

      const updatedCid = await fs.cp(fileCid, directoryCid, 'foo.txt')

      console.info(updatedCid)
    • Remove a file or directory from an existing directory.

      Parameters

      Returns Promise<CID<unknown, number, number, Version>>

      const directoryCid = await fs.addDirectory()
      const updatedCid = await fs.mkdir(directoryCid, 'new-dir')

      const finalCid = await fs.rm(updatedCid, 'new-dir')

      console.info(finalCid)
    • Update the mtime of a UnixFS DAG

      Parameters

      Returns Promise<CID<unknown, number, number, Version>>

      const beforeCid = await fs.addBytes(Uint8Array.from([0, 1, 2, 3]))
      const beforeStats = await fs.stat(beforeCid)

      const afterCid = await fs.touch(beforeCid)
      const afterStats = await fs.stat(afterCid)

      console.info(beforeCid, beforeStats)
      console.info(afterCid, afterStats)