mirror of
https://github.com/rclone/rclone.git
synced 2024-11-26 02:09:55 +08:00
Update docs
This commit is contained in:
parent
6e732f3dc0
commit
b41367856b
48
fs.go
48
fs.go
|
@ -11,11 +11,26 @@ import (
|
||||||
|
|
||||||
// A Filesystem, describes the local filesystem and the remote object store
|
// A Filesystem, describes the local filesystem and the remote object store
|
||||||
type Fs interface {
|
type Fs interface {
|
||||||
|
// String returns a description of the FS
|
||||||
String() string
|
String() string
|
||||||
|
|
||||||
|
// List the Fs into a channel
|
||||||
List() FsObjectsChan
|
List() FsObjectsChan
|
||||||
|
|
||||||
|
// Find the FsObject at remote. Returns nil if can't be found
|
||||||
NewFsObject(remote string) FsObject
|
NewFsObject(remote string) FsObject
|
||||||
|
|
||||||
|
// Put in to the remote path with the modTime given of the given size
|
||||||
|
//
|
||||||
|
// May create the object even if it returns an error - if so
|
||||||
|
// will return the object and the error, otherwise will return
|
||||||
|
// nil and the error
|
||||||
Put(in io.Reader, remote string, modTime time.Time, size int64) (FsObject, error)
|
Put(in io.Reader, remote string, modTime time.Time, size int64) (FsObject, error)
|
||||||
|
|
||||||
|
// Make the directory (container, bucket)
|
||||||
Mkdir() error
|
Mkdir() error
|
||||||
|
|
||||||
|
// Remove the directory (container, bucket) if empty
|
||||||
Rmdir() error
|
Rmdir() error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,13 +39,28 @@ type Fs interface {
|
||||||
// A filesystem like object which can either be a remote object or a
|
// A filesystem like object which can either be a remote object or a
|
||||||
// local file/directory
|
// local file/directory
|
||||||
type FsObject interface {
|
type FsObject interface {
|
||||||
|
// Remote returns the remote path
|
||||||
Remote() string
|
Remote() string
|
||||||
|
|
||||||
|
// Md5sum returns the md5 checksum of the file
|
||||||
Md5sum() (string, error)
|
Md5sum() (string, error)
|
||||||
|
|
||||||
|
// ModTime returns the modification date of the file
|
||||||
ModTime() time.Time
|
ModTime() time.Time
|
||||||
|
|
||||||
|
// SetModTime sets the metadata on the object to set the modification date
|
||||||
SetModTime(time.Time)
|
SetModTime(time.Time)
|
||||||
|
|
||||||
|
// Size returns the size of the file
|
||||||
Size() int64
|
Size() int64
|
||||||
|
|
||||||
|
// Open opens the file for read. Call Close() on the returned io.ReadCloser
|
||||||
Open() (io.ReadCloser, error)
|
Open() (io.ReadCloser, error)
|
||||||
|
|
||||||
|
// Storable says whether this object can be stored
|
||||||
Storable() bool
|
Storable() bool
|
||||||
|
|
||||||
|
// Removes this object
|
||||||
Remove() error
|
Remove() error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,13 +73,15 @@ type Purger interface {
|
||||||
Purge() error
|
Purge() error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A channel of FsObjects
|
||||||
type FsObjectsChan chan FsObject
|
type FsObjectsChan chan FsObject
|
||||||
|
|
||||||
|
// A slice of FsObjects
|
||||||
type FsObjects []FsObject
|
type FsObjects []FsObject
|
||||||
|
|
||||||
// NewFs makes a new Fs object from the path
|
// NewFs makes a new Fs object from the path
|
||||||
//
|
//
|
||||||
// FIXME make more generic in future
|
// FIXME make more generic
|
||||||
func NewFs(path string) (Fs, error) {
|
func NewFs(path string) (Fs, error) {
|
||||||
if swiftMatch.MatchString(path) {
|
if swiftMatch.MatchString(path) {
|
||||||
return NewFsSwift(path)
|
return NewFsSwift(path)
|
||||||
|
@ -176,12 +208,14 @@ func Copy(f Fs, src FsObject) {
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
stats.Error()
|
stats.Error()
|
||||||
FsLog(dst, "Failed to copy: %s", err)
|
FsLog(src, "Failed to copy: %s", err)
|
||||||
FsDebug(dst, "Removing failed copy")
|
if dst != nil {
|
||||||
removeErr := dst.Remove()
|
FsDebug(dst, "Removing failed copy")
|
||||||
if removeErr != nil {
|
removeErr := dst.Remove()
|
||||||
stats.Error()
|
if removeErr != nil {
|
||||||
FsLog(dst, "Failed to remove failed copy: %s", removeErr)
|
stats.Error()
|
||||||
|
FsLog(dst, "Failed to remove failed copy: %s", removeErr)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user