Documentation ¶
Index ¶
- Constants
- Variables
- func ExportRsaPrivateKeyToPem(key *rsa.PrivateKey, passphrase string) string
- func GetHttpClient() *http.Client
- func IsErrReplicating(err error) bool
- func IsFileSystem(object ObjectStorage) bool
- func ListAll(store ObjectStorage, prefix, marker string, followLink bool) (<-chan Object, error)
- func ListAllWithDelimiter(store ObjectStorage, prefix, start, end string, followLink bool) (<-chan Object, error)
- func MarshalObject(o Object) map[string]interface{}
- func ParseRsaPrivateKeyFromPath(path, passphrase string) (*rsa.PrivateKey, error)
- func ParseRsaPrivateKeyFromPem(enc []byte, passphrase []byte) (*rsa.PrivateKey, error)
- func Register(name string, register Creator)
- func Shutdown(o ObjectStorage)
- type AttrGetter
- type COS
- func (c *COS) AbortUpload(key string, uploadID string)
- func (c *COS) CompleteUpload(key string, uploadID string, parts []*Part) error
- func (c *COS) Copy(dst, src string) error
- func (c *COS) Create() error
- func (c *COS) CreateMultipartUpload(key string) (*MultipartUpload, error)
- func (c *COS) Delete(key string, getters ...AttrGetter) error
- func (c *COS) Get(key string, off, limit int64, getters ...AttrGetter) (io.ReadCloser, error)
- func (c *COS) Head(key string) (Object, error)
- func (c *COS) Limits() Limits
- func (c *COS) List(prefix, marker, delimiter string, limit int64, followLink bool) ([]Object, error)
- func (c *COS) ListAll(prefix, marker string, followLink bool) (<-chan Object, error)
- func (c *COS) ListUploads(marker string) ([]*PendingPart, string, error)
- func (c *COS) Put(key string, in io.Reader, getters ...AttrGetter) error
- func (c *COS) SetStorageClass(sc string) error
- func (c *COS) String() string
- func (c *COS) UploadPart(key string, uploadID string, num int, body []byte) (*Part, error)
- func (c *COS) UploadPartCopy(key string, uploadID string, num int, srcKey string, off, size int64) (*Part, error)
- type Creator
- type DataItem
- type DefaultObjectStorage
- func (s DefaultObjectStorage) AbortUpload(key string, uploadID string)
- func (s DefaultObjectStorage) CompleteUpload(key string, uploadID string, parts []*Part) error
- func (s DefaultObjectStorage) Copy(dst, src string) error
- func (s DefaultObjectStorage) Create() error
- func (s DefaultObjectStorage) CreateMultipartUpload(key string) (*MultipartUpload, error)
- func (s DefaultObjectStorage) Head(key string) (Object, error)
- func (s DefaultObjectStorage) Limits() Limits
- func (s DefaultObjectStorage) List(prefix, marker, delimiter string, limit int64, followLink bool) ([]Object, error)
- func (s DefaultObjectStorage) ListAll(prefix, marker string, followLink bool) (<-chan Object, error)
- func (s DefaultObjectStorage) ListUploads(marker string) ([]*PendingPart, string, error)
- func (s DefaultObjectStorage) UploadPart(key string, uploadID string, num int, body []byte) (*Part, error)
- func (s DefaultObjectStorage) UploadPartCopy(key string, uploadID string, num int, srcKey string, off, size int64) (*Part, error)
- type Encryptor
- type File
- type FileSystem
- type Limits
- type MtimeChanger
- type MultipartUpload
- type Object
- type ObjectMetadata
- type ObjectMetadatas
- type ObjectStorage
- func CreateStorage(name, endpoint, accessKey, secretKey, token string) (ObjectStorage, error)
- func NewEncrypted(o ObjectStorage, enc Encryptor) ObjectStorage
- func NewSharded(name, endpoint, ak, sk, token string, shards int) (ObjectStorage, error)
- func WithPrefix(os ObjectStorage, prefix string) ObjectStorage
- type ObjectStorageMetadata
- type Part
- type PendingPart
- type ResponseAttrs
- type RestfulStorage
- func (s *RestfulStorage) Copy(dst, src string) error
- func (s *RestfulStorage) Delete(key string, getters ...AttrGetter) error
- func (s *RestfulStorage) Get(key string, off, limit int64, getters ...AttrGetter) (io.ReadCloser, error)
- func (s *RestfulStorage) Head(key string) (Object, error)
- func (s *RestfulStorage) List(prefix, marker, delimiter string, limit int64, followLink bool) ([]Object, error)
- func (u *RestfulStorage) Put(key string, body io.Reader, getters ...AttrGetter) error
- func (s *RestfulStorage) String() string
- type SectionReaderCloser
- type Shutdownable
- type SupportStorageClass
- type SupportSymlink
Constants ¶
View Source
const ( // AsyncWriteBack writes the object asynchronously to the backend. AsyncWriteBack = iota // WriteBack writes the object synchronously to the backend. WriteBack // Ephemeral only writes the object to the dfdaemon. // It is only provided for creating temporary objects between peers, // and users are not allowed to use this mode. Ephemeral )
View Source
const ( // HeaderDragonflyObjectMetaLastModifiedTime is used for last modified time of object storage. HeaderDragonflyObjectMetaLastModifiedTime = "X-Dragonfly-Object-Meta-Last-Modified-Time" // HeaderDragonflyObjectMetaStorageClass is used for storage class of object storage. HeaderDragonflyObjectMetaStorageClass = "X-Dragonfly-Object-Meta-Storage-Class" // HeaderDragonflyObjectOperation is used for object storage operation. HeaderDragonflyObjectOperation = "X-Dragonfly-Object-Operation" )
View Source
const ( // Upper limit of maxGetObjectMetadatas. MaxGetObjectMetadatasLimit = 1000 // DefaultMaxReplicas is the default value of maxReplicas. DefaultMaxReplicas = 0 // Upper limit of maxReplicas. MaxReplicasLimit = 100 )
View Source
const ( // FilterOSS is the filter of oss url for generating task id. FilterOSS = "Expires&Signature" // FilterS3 is the filter of s3 url for generating task id. FilterS3 = "X-Amz-Algorithm&X-Amz-Credential&X-Amz-Date&X-Amz-Expires&X-Amz-SignedHeaders&X-Amz-Signature" // FilterOBS is the filter of obs url for generating task id. FilterOBS = "X-Amz-Algorithm&X-Amz-Credential&X-Amz-Date&X-Obs-Date&X-Amz-Expires&X-Amz-SignedHeaders&X-Amz-Signature" )
View Source
const ( AES256GCM_RSA = "aes256gcm-rsa" CHACHA20_RSA = "chacha20-rsa" )
View Source
const (
// CopyOperation is the operation of copying object.
CopyOperation = "copy"
)
View Source
const DefaultStorageClass = "STANDARD"
Variables ¶
View Source
var HEADER_NAMES = []string{"Content-MD5", "Content-Type", "Date"}
View Source
var OVHCompileRegexp = `^s3\.(\w*)(\.\w*)?\.cloud\.ovh\.net$`
View Source
var PutInplace bool
View Source
var TryCFR bool // try copy_file_range
View Source
var UserAgent = "JuiceFS"
Functions ¶
func ExportRsaPrivateKeyToPem ¶
func ExportRsaPrivateKeyToPem(key *rsa.PrivateKey, passphrase string) string
func GetHttpClient ¶
func IsErrReplicating ¶
func IsFileSystem ¶
func IsFileSystem(object ObjectStorage) bool
func ListAll ¶
func ListAll(store ObjectStorage, prefix, marker string, followLink bool) (<-chan Object, error)
ListAll on all the keys that starts at marker from object storage.
func ListAllWithDelimiter ¶
func ListAllWithDelimiter(store ObjectStorage, prefix, start, end string, followLink bool) (<-chan Object, error)
func MarshalObject ¶
func ParseRsaPrivateKeyFromPath ¶
func ParseRsaPrivateKeyFromPath(path, passphrase string) (*rsa.PrivateKey, error)
func ParseRsaPrivateKeyFromPem ¶
func ParseRsaPrivateKeyFromPem(enc []byte, passphrase []byte) (*rsa.PrivateKey, error)
func Shutdown ¶
func Shutdown(o ObjectStorage)
Types ¶
type AttrGetter ¶
type AttrGetter func(attrs *ResponseAttrs)
func WithRequestID ¶
func WithRequestID(id *string) AttrGetter
func WithStorageClass ¶
func WithStorageClass(sc *string) AttrGetter
type COS ¶
type COS struct {
// contains filtered or unexported fields
}
func (*COS) AbortUpload ¶
func (*COS) CompleteUpload ¶
func (*COS) CreateMultipartUpload ¶
func (c *COS) CreateMultipartUpload(key string) (*MultipartUpload, error)
func (*COS) Get ¶
func (c *COS) Get(key string, off, limit int64, getters ...AttrGetter) (io.ReadCloser, error)
func (*COS) ListUploads ¶
func (c *COS) ListUploads(marker string) ([]*PendingPart, string, error)
func (*COS) SetStorageClass ¶
func (*COS) UploadPart ¶
type Creator ¶
type Creator func(bucket, accessKey, secretKey, token string) (ObjectStorage, error)
type DefaultObjectStorage ¶
type DefaultObjectStorage struct{}
func (DefaultObjectStorage) AbortUpload ¶
func (s DefaultObjectStorage) AbortUpload(key string, uploadID string)
func (DefaultObjectStorage) CompleteUpload ¶
func (s DefaultObjectStorage) CompleteUpload(key string, uploadID string, parts []*Part) error
func (DefaultObjectStorage) Copy ¶
func (s DefaultObjectStorage) Copy(dst, src string) error
func (DefaultObjectStorage) Create ¶
func (s DefaultObjectStorage) Create() error
func (DefaultObjectStorage) CreateMultipartUpload ¶
func (s DefaultObjectStorage) CreateMultipartUpload(key string) (*MultipartUpload, error)
func (DefaultObjectStorage) Limits ¶
func (s DefaultObjectStorage) Limits() Limits
func (DefaultObjectStorage) ListAll ¶
func (s DefaultObjectStorage) ListAll(prefix, marker string, followLink bool) (<-chan Object, error)
func (DefaultObjectStorage) ListUploads ¶
func (s DefaultObjectStorage) ListUploads(marker string) ([]*PendingPart, string, error)
func (DefaultObjectStorage) UploadPart ¶
func (DefaultObjectStorage) UploadPartCopy ¶
type Encryptor ¶
type Encryptor interface { Encrypt(plaintext []byte) ([]byte, error) Decrypt(ciphertext []byte) ([]byte, error) }
func NewDataEncryptor ¶
func NewRSAEncryptor ¶
func NewRSAEncryptor(privKey *rsa.PrivateKey) Encryptor
type FileSystem ¶
type MultipartUpload ¶
type Object ¶
type Object interface { Key() string Size() int64 Mtime() time.Time IsDir() bool IsSymlink() bool StorageClass() string }
func UnmarshalObject ¶
type ObjectMetadata ¶
type ObjectMetadata struct { // Key is object key. Key string // ContentDisposition is Content-Disposition header. ContentDisposition string // ContentEncoding is Content-Encoding header. ContentEncoding string // ContentLanguage is Content-Language header. ContentLanguage string // ContentLanguage is Content-Length header. ContentLength int64 // ContentType is Content-Type header. ContentType string // ETag is ETag header. ETag string // Digest is object digest. Digest string // LastModifiedTime is last modified time. LastModifiedTime time.Time // StorageClass is object storage class. StorageClass string }
ObjectMetadata is the object metadata.
type ObjectMetadatas ¶
type ObjectMetadatas struct { // CommonPrefixes are similar prefixes in object storage. CommonPrefixes []string `json:"CommonPrefixes"` // Metadatas are object metadata. Metadatas []*ObjectMetadata `json:"Metadatas"` }
ObjectMetadatas is the object metadata list.
type ObjectStorage ¶
type ObjectStorage interface { // Description of the object storage. String() string // Limits of the object storage. Limits() Limits // Create the bucket if not existed. Create() error // Get the data for the given object specified by key. Get(key string, off, limit int64, getters ...AttrGetter) (io.ReadCloser, error) // Put data read from a reader to an object specified by key. Put(key string, in io.Reader, getters ...AttrGetter) error // Copy an object from src to dst. Copy(dst, src string) error // Delete a object. Delete(key string, getters ...AttrGetter) error // Head returns some information about the object or an error if not found. Head(key string) (Object, error) // List returns a list of objects. List(prefix, marker, delimiter string, limit int64, followLink bool) ([]Object, error) // ListAll returns all the objects as an channel. ListAll(prefix, marker string, followLink bool) (<-chan Object, error) // CreateMultipartUpload starts to upload a large object part by part. CreateMultipartUpload(key string) (*MultipartUpload, error) // UploadPart upload a part of an object. UploadPart(key string, uploadID string, num int, body []byte) (*Part, error) // UploadPartCopy Uploads a part by copying data from an existing object as data source. UploadPartCopy(key string, uploadID string, num int, srcKey string, off, size int64) (*Part, error) // AbortUpload abort a multipart upload. AbortUpload(key string, uploadID string) // CompleteUpload finish an multipart upload. CompleteUpload(key string, uploadID string, parts []*Part) error // ListUploads lists existing multipart uploads. ListUploads(marker string) ([]*PendingPart, string, error) }
ObjectStorage is the interface for object storage. all of these API should be idempotent.
func CreateStorage ¶
func CreateStorage(name, endpoint, accessKey, secretKey, token string) (ObjectStorage, error)
func NewEncrypted ¶
func NewEncrypted(o ObjectStorage, enc Encryptor) ObjectStorage
NewEncrypted returns a encrypted object storage
func NewSharded ¶
func NewSharded(name, endpoint, ak, sk, token string, shards int) (ObjectStorage, error)
func WithPrefix ¶
func WithPrefix(os ObjectStorage, prefix string) ObjectStorage
WithPrefix return an object storage that add a prefix to keys.
type ObjectStorageMetadata ¶
type ObjectStorageMetadata struct { // Name is object storage name of type, it can be s3, oss or obs. Name string // Region is storage region. Region string // Endpoint is datacenter endpoint. Endpoint string }
ObjectStorageMetadata is the object storage metadata.
type ResponseAttrs ¶
type ResponseAttrs struct {
// contains filtered or unexported fields
}
A generic way to get attributes from different object storage clients
func (*ResponseAttrs) SetRequestID ¶
func (r *ResponseAttrs) SetRequestID(id string) *ResponseAttrs
func (*ResponseAttrs) SetStorageClass ¶
func (r *ResponseAttrs) SetStorageClass(sc string) *ResponseAttrs
type RestfulStorage ¶
type RestfulStorage struct { DefaultObjectStorage // contains filtered or unexported fields }
func (*RestfulStorage) Copy ¶
func (s *RestfulStorage) Copy(dst, src string) error
func (*RestfulStorage) Delete ¶
func (s *RestfulStorage) Delete(key string, getters ...AttrGetter) error
func (*RestfulStorage) Get ¶
func (s *RestfulStorage) Get(key string, off, limit int64, getters ...AttrGetter) (io.ReadCloser, error)
func (*RestfulStorage) Put ¶
func (u *RestfulStorage) Put(key string, body io.Reader, getters ...AttrGetter) error
func (*RestfulStorage) String ¶
func (s *RestfulStorage) String() string
type SectionReaderCloser ¶
type SectionReaderCloser struct { *io.SectionReader io.Closer }
type Shutdownable ¶
type Shutdownable interface {
Shutdown()
}
type SupportStorageClass ¶
Source Files ¶
- azure.go
- b2.go
- bos.go
- checksum.go
- cos.go
- dragonfly.go
- encrypt.go
- eos.go
- etcd.go
- file.go
- file_unix.go
- gs.go
- hdfs.go
- hdfs_kerberos.go
- ibmcos.go
- interface.go
- jss.go
- ks3.go
- mem.go
- minio.go
- nfs.go
- object_storage.go
- obs.go
- oos.go
- oss.go
- prefix.go
- qingstor.go
- qiniu.go
- redis.go
- response_attrs.go
- restful.go
- s3.go
- scs.go
- scw.go
- sftp.go
- sharding.go
- space.go
- sql.go
- sql_mysql.go
- sql_pg.go
- sql_sqlite.go
- swift.go
- tikv.go
- tos.go
- ufile.go
- upyun.go
- wasabi.go
- webdav.go
Click to show internal directories.
Click to hide internal directories.