remote.mount saves the mapping
This commit is contained in:
@@ -3,13 +3,34 @@ package remote_storage
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type RemoteStorageLocation string
|
||||
|
||||
func (remote RemoteStorageLocation) NameBucketPath() (storageName, bucket, remotePath string) {
|
||||
if strings.HasSuffix(string(remote), "/") {
|
||||
remote = remote[:len(remote)-1]
|
||||
}
|
||||
parts := strings.SplitN(string(remote), "/", 3)
|
||||
if len(parts)>=1 {
|
||||
storageName = parts[0]
|
||||
}
|
||||
if len(parts)>=2 {
|
||||
bucket = parts[1]
|
||||
}
|
||||
remotePath = string(remote[len(storageName)+1+len(bucket):])
|
||||
if remotePath == "" {
|
||||
remotePath = "/"
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
type VisitFunc func(dir string, name string, isDirectory bool, remoteEntry *filer_pb.RemoteEntry) error
|
||||
|
||||
type RemoteStorageClient interface {
|
||||
Traverse(rootDir string, visitFn VisitFunc) error
|
||||
Traverse(remote RemoteStorageLocation, visitFn VisitFunc) error
|
||||
}
|
||||
|
||||
type RemoteStorageClientMaker interface {
|
||||
|
||||
Reference in New Issue
Block a user