Documentation
¶
Overview ¶
package fsrepo
TODO explain the package roadmap...
.ipfs/ ├── client/ | ├── client.lock <------ protects client/ + signals its own pid │ ├── ipfs-client.cpuprof │ └── ipfs-client.memprof ├── config ├── daemon/ │ ├── daemon.lock <------ protects daemon/ + signals its own address │ ├── ipfs-daemon.cpuprof │ └── ipfs-daemon.memprof ├── datastore/ ├── repo.lock <------ protects datastore/ and config └── version
Index ¶
- Constants
- Variables
- func APIAddr(repoPath string) (ma.Multiaddr, error)
- func AddDatastoreConfigHandler(name string, dsc ConfigFromMap) error
- func BestKnownPath() (string, error)
- func ConfigAt(repoPath string) (*config.Config, error)
- func Init(repoPath string, conf *config.Config) error
- func IsInitialized(path string) bool
- func LockedByOtherProcess(repoPath string) (bool, error)
- func Open(repoPath string) (repo.Repo, error)
- type ConfigFromMap
- type DSConfig
- type DatastoreConfig
- func AnyDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
- func BadgerdsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
- func FlatfsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
- func LeveldsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
- func LogDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
- func MeasureDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
- func MemDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
- func MountDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
- func StorjDatastoreConfig(m map[string]interface{}) (DatastoreConfig, error)
- type DiskSpec
- type FSRepo
- func (r *FSRepo) BackupConfig(prefix string) (string, error)
- func (r *FSRepo) Close() error
- func (r *FSRepo) Config() (*config.Config, error)
- func (r *FSRepo) Datastore() repo.Datastore
- func (r *FSRepo) FileManager() *filestore.FileManager
- func (r *FSRepo) GetConfigKey(key string) (interface{}, error)
- func (r *FSRepo) GetStorageUsage() (uint64, error)
- func (r *FSRepo) Keystore() keystore.Keystore
- func (r *FSRepo) Path() string
- func (r *FSRepo) SetAPIAddr(addr ma.Multiaddr) error
- func (r *FSRepo) SetConfig(updated *config.Config) error
- func (r *FSRepo) SetConfigKey(key string, value interface{}) error
- func (r *FSRepo) SwarmKey() ([]byte, error)
- type NoRepoError
Constants ¶
const LockFile = "repo.lock"
LockFile is the filename of the repo lock, relative to config dir TODO rename repo lock and hide name
Variables ¶
var ( ErrNoVersion = errors.New("no version file found, please run 0-to-1 migration tool.\n" + migrationInstructions) ErrOldRepo = errors.New("ipfs repo found in old '~/.go-ipfs' location, please run migration tool.\n" + migrationInstructions) ErrNeedMigration = errors.New("ipfs repo needs migration") )
var RepoVersion = 7
version number that we are currently expecting to see
Functions ¶
func APIAddr ¶
APIAddr returns the registered API addr, according to the api file in the fsrepo. This is a concurrent operation, meaning that any process may read this file. modifying this file, therefore, should use "mv" to replace the whole file and avoid interleaved read/writes.
func AddDatastoreConfigHandler ¶
func AddDatastoreConfigHandler(name string, dsc ConfigFromMap) error
func BestKnownPath ¶
BestKnownPath returns the best known fsrepo path. If the ENV override is present, this function returns that value. Otherwise, it returns the default repo path.
func ConfigAt ¶
ConfigAt returns an error if the FSRepo at the given path is not initialized. This function allows callers to read the config file even when another process is running and holding the lock.
func Init ¶
Init initializes a new FSRepo at the given path with the provided config. TODO add support for custom datastores.
func IsInitialized ¶
IsInitialized returns true if the repo is initialized at provided |path|.
func LockedByOtherProcess ¶
LockedByOtherProcess returns true if the FSRepo is locked by another process. If true, then the repo cannot be opened by this process.
Types ¶
type ConfigFromMap ¶
type ConfigFromMap func(map[string]interface{}) (DatastoreConfig, error)
ConfigFromMap creates a new datastore config from a map
type DSConfig ¶
type DSConfig struct {
// contains filtered or unexported fields
}
DSConfig is the configuration for our datastore
type DatastoreConfig ¶
type DatastoreConfig interface { // DiskSpec returns a minimal configuration of the datastore // represting what is stored on disk. Run time values are // excluded. DiskSpec() DiskSpec // Create instantiate a new datastore from this config Create(path string) (repo.Datastore, error) }
DatastoreConfig is an abstraction of a datastore config. A "spec" is first converted to a DatastoreConfig and then Create() is called to instantiate a new datastore
func AnyDatastoreConfig ¶
func AnyDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
AnyDatastoreConfig returns a DatastoreConfig from a spec based on the "type" parameter
func BadgerdsDatastoreConfig ¶
func BadgerdsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
BadgerdsDatastoreConfig returns a configuration stub for a badger datastore from the given parameters
func FlatfsDatastoreConfig ¶
func FlatfsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
FlatfsDatastoreConfig returns a flatfs DatastoreConfig from a spec
func LeveldsDatastoreConfig ¶
func LeveldsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
LeveldsDatastoreConfig returns a levelds DatastoreConfig from a spec
func LogDatastoreConfig ¶
func LogDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
LogDatastoreConfig returns a log DatastoreConfig from a spec
func MeasureDatastoreConfig ¶
func MeasureDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
MeasureDatastoreConfig returns a measure DatastoreConfig from a spec
func MemDatastoreConfig ¶
func MemDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
MemDatastoreConfig returns a memory DatastoreConfig from a spec
func MountDatastoreConfig ¶
func MountDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error)
MountDatastoreConfig returns a mount DatastoreConfig from a spec
func StorjDatastoreConfig ¶
func StorjDatastoreConfig(m map[string]interface{}) (DatastoreConfig, error)
StorjDatastoreConfig returns a storj DatastoreConfig
type DiskSpec ¶
type DiskSpec map[string]interface{}
DiskSpec is a minimal representation of the characteristic values of the datastore. If two diskspecs are the same, the loader assumes that they refer to exactly the same datastore. If they differ at all, it is assumed they are completely different datastores and a migration will be performed. Runtime values such as cache options or concurrency options should not be added here.
type FSRepo ¶
type FSRepo struct {
// contains filtered or unexported fields
}
FSRepo represents an IPFS FileSystem Repo. It is safe for use by multiple callers.
func (*FSRepo) Datastore ¶
Datastore returns a repo-owned datastore. If FSRepo is Closed, return value is undefined.
func (*FSRepo) FileManager ¶
func (r *FSRepo) FileManager() *filestore.FileManager
func (*FSRepo) GetConfigKey ¶
GetConfigKey retrieves only the value of a particular key.
func (*FSRepo) GetStorageUsage ¶
GetStorageUsage computes the storage space taken by the repo in bytes
func (*FSRepo) SetAPIAddr ¶
SetAPIAddr writes the API Addr to the /api file.
func (*FSRepo) SetConfigKey ¶
SetConfigKey writes the value of a particular key.
type NoRepoError ¶
type NoRepoError struct {
Path string
}
func (NoRepoError) Error ¶
func (err NoRepoError) Error() string