mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-04 10:21:40 +00:00
@@ -0,0 +1,30 @@
|
||||
package ipfs
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/ipfs/boxo/files"
|
||||
)
|
||||
|
||||
// Folder represents a directory structure that can be stored in IPFS.
|
||||
// It's aliased to files.Directory from the boxo library for compatibility
|
||||
// with IPFS directory operations.
|
||||
type Folder = files.Directory
|
||||
|
||||
// NewFolder creates a new directory structure from a collection of files.
|
||||
// It uses the NewFileMap function to organize the files into a map structure
|
||||
// suitable for IPFS directory representation.
|
||||
func NewFolder(fs ...File) Folder {
|
||||
return files.NewMapDirectory(NewFileMap(fs))
|
||||
}
|
||||
|
||||
// AddFolder stores a complete directory structure in IPFS and returns the root CID.
|
||||
// The folder and all its contained files are added to IPFS as a unified directory node.
|
||||
// This method is implemented on the client to maintain consistency with the Client interface.
|
||||
func (c *ipfsClient) AddFolder(folder Folder) (string, error) {
|
||||
cidFile, err := c.api.Unixfs().Add(context.Background(), folder)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return cidFile.String(), nil
|
||||
}
|
||||
Reference in New Issue
Block a user