Documentation
¶
Index ¶
- type AzureStorage
- func (f *AzureStorage) Delete(ctx context.Context, name string, tag interface{}) (err error)
- func (f *AzureStorage) Get(ctx context.Context, name string, out io.Writer, metadataCb crypto.MetadataCb) (found bool, tag interface{}, err error)
- func (f *AzureStorage) GetInfoFile() (info *infofile.InfoFile, err error)
- func (f *AzureStorage) GetKeyId() string
- func (f *AzureStorage) GetMasterKey() []byte
- func (f *AzureStorage) GetWithRange(ctx context.Context, name string, out io.Writer, rng *RequestRange, ...) (found bool, tag interface{}, err error)
- func (f *AzureStorage) InitWithConnectionString(connection string, cache *MetadataCache) error
- func (f *AzureStorage) InitWithOptionsMap(opts map[string]string, cache *MetadataCache) error
- func (f *AzureStorage) Set(ctx context.Context, name string, in io.Reader, tag interface{}, ...) (tagOut interface{}, err error)
- func (f *AzureStorage) SetInfoFile(info *infofile.InfoFile) (err error)
- func (f *AzureStorage) SetMasterKey(keyId string, key []byte)
- type Fs
- type Local
- func (f *Local) Delete(ctx context.Context, name string, tag interface{}) (err error)
- func (f *Local) Get(ctx context.Context, name string, out io.Writer, metadataCb crypto.MetadataCb) (found bool, tag interface{}, err error)
- func (f *Local) GetInfoFile() (info *infofile.InfoFile, err error)
- func (f *Local) GetKeyId() string
- func (f *Local) GetMasterKey() []byte
- func (f *Local) GetWithRange(ctx context.Context, name string, out io.Writer, rng *RequestRange, ...) (found bool, tag interface{}, err error)
- func (f *Local) InitWithConnectionString(connection string, cache *MetadataCache) error
- func (f *Local) InitWithOptionsMap(opts map[string]string, cache *MetadataCache) error
- func (f *Local) Set(ctx context.Context, name string, in io.Reader, tag interface{}, ...) (tagOut interface{}, err error)
- func (f *Local) SetInfoFile(info *infofile.InfoFile) (err error)
- func (f *Local) SetMasterKey(keyId string, key []byte)
- type MetadataCache
- func (c *MetadataCache) Add(name string, headerVersion uint16, headerLength int32, wrappedKey []byte, ...)
- func (c *MetadataCache) Contains(name string) bool
- func (c *MetadataCache) Get(name string) (headerVersion uint16, headerLength int32, wrappedKey []byte, ...)
- func (c *MetadataCache) Init() (err error)
- func (c *MetadataCache) Keys() []string
- func (c *MetadataCache) Purge()
- func (c *MetadataCache) Remove(name string)
- type RequestRange
- func (c *RequestRange) EndBytes() int64
- func (c *RequestRange) EndPackage() uint32
- func (c *RequestRange) LengthBytes() int64
- func (c *RequestRange) LengthPackages() uint32
- func (c *RequestRange) RequestHeaderValue() string
- func (c *RequestRange) ResponseHeaderValue() string
- func (c *RequestRange) SetFileSize(size int64)
- func (c *RequestRange) SkipBeginning() int
- func (c *RequestRange) StartBytes() int64
- func (c *RequestRange) StartPackage() uint32
- func (c *RequestRange) String() string
- type S3
- func (f *S3) Delete(ctx context.Context, name string, tag interface{}) (err error)
- func (f *S3) Get(ctx context.Context, name string, out io.Writer, metadataCb crypto.MetadataCb) (found bool, tag interface{}, err error)
- func (f *S3) GetInfoFile() (info *infofile.InfoFile, err error)
- func (f *S3) GetKeyId() string
- func (f *S3) GetMasterKey() []byte
- func (f *S3) GetWithRange(ctx context.Context, name string, out io.Writer, rng *RequestRange, ...) (found bool, tag interface{}, err error)
- func (f *S3) InitWithConnectionString(connection string, cache *MetadataCache) error
- func (f *S3) InitWithOptionsMap(opts map[string]string, cache *MetadataCache) error
- func (f *S3) Set(ctx context.Context, name string, in io.Reader, tag interface{}, ...) (tagOut interface{}, err error)
- func (f *S3) SetInfoFile(info *infofile.InfoFile) (err error)
- func (f *S3) SetMasterKey(keyId string, key []byte)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AzureStorage ¶
type AzureStorage struct {
// contains filtered or unexported fields
}
AzureStorage stores files on Azure Blob Storage
func (*AzureStorage) Delete ¶
func (f *AzureStorage) Delete(ctx context.Context, name string, tag interface{}) (err error)
func (*AzureStorage) Get ¶
func (f *AzureStorage) Get(ctx context.Context, name string, out io.Writer, metadataCb crypto.MetadataCb) (found bool, tag interface{}, err error)
func (*AzureStorage) GetInfoFile ¶
func (f *AzureStorage) GetInfoFile() (info *infofile.InfoFile, err error)
func (*AzureStorage) GetKeyId ¶ added in v0.5.0
func (f *AzureStorage) GetKeyId() string
GetKeyId returns the ID of the key used
func (*AzureStorage) GetMasterKey ¶ added in v0.5.0
func (f *AzureStorage) GetMasterKey() []byte
GetMasterKey returns the master key
func (*AzureStorage) GetWithRange ¶ added in v0.5.0
func (f *AzureStorage) GetWithRange(ctx context.Context, name string, out io.Writer, rng *RequestRange, metadataCb crypto.MetadataCb) (found bool, tag interface{}, err error)
func (*AzureStorage) InitWithConnectionString ¶ added in v0.5.0
func (f *AzureStorage) InitWithConnectionString(connection string, cache *MetadataCache) error
func (*AzureStorage) InitWithOptionsMap ¶ added in v0.5.0
func (f *AzureStorage) InitWithOptionsMap(opts map[string]string, cache *MetadataCache) error
func (*AzureStorage) SetInfoFile ¶
func (f *AzureStorage) SetInfoFile(info *infofile.InfoFile) (err error)
func (*AzureStorage) SetMasterKey ¶
SetMasterKey sets the master key (used to encrypt/decrypt files) in the object
type Fs ¶
type Fs interface { // InitWithOptionsMap inits the object by passing an options map InitWithOptionsMap(opts map[string]string, cache *MetadataCache) error // InitWithConnectionString inits the object by passing a connection string and the cache object InitWithConnectionString(connection string, cache *MetadataCache) error // SetMasterKey sets the master key (used to encrypt/decrypt files) in the object SetMasterKey(keyId string, key []byte) // GetMasterKey returns the master key GetMasterKey() []byte // GetKeyId returns the ID of the key used GetKeyId() string // GetInfoFile returns the contents of the info file GetInfoFile() (info *infofile.InfoFile, err error) // SetInfoFile stores the info file SetInfoFile(info *infofile.InfoFile) (err error) // Get returns a stream to a file in the filesystem // It also returns a tag (which might be empty) that should be passed to the Set method if you want to subsequentially update the contents of the file Get(ctx context.Context, name string, out io.Writer, metadataCb crypto.MetadataCb) (found bool, tag interface{}, err error) // GetWithRange is like Get, but accepts a custom range GetWithRange(ctx context.Context, name string, out io.Writer, rng *RequestRange, metadataCb crypto.MetadataCb) (found bool, tag interface{}, err error) // Set writes a stream to the file in the filesystem // If you pass a tag, the implementation might use that to ensure that the file on the filesystem hasn't been changed since it was read (optional) Set(ctx context.Context, name string, in io.Reader, tag interface{}, metadata *crypto.Metadata) (tagOut interface{}, err error) // Delete a file from the filesystem // If you pass a tag, the implementation might use that to ensure that the file on the filesystem hasn't been changed since it was read (optional) Delete(ctx context.Context, name string, tag interface{}) (err error) }
Fs is the interface for the filesystem
func GetWithConnectionString ¶ added in v0.5.0
GetWithConnectionString returns a store for the given connection string
type Local ¶
type Local struct {
// contains filtered or unexported fields
}
Local is the local file system This implementation does not rely on tags, as it's assumed that concurrency isn't an issue on a single machine
func (*Local) GetKeyId ¶ added in v0.5.0
func (f *Local) GetKeyId() string
GetKeyId returns the ID of the key used
func (*Local) GetMasterKey ¶ added in v0.5.0
func (f *Local) GetMasterKey() []byte
GetMasterKey returns the master key
func (*Local) GetWithRange ¶ added in v0.5.0
func (*Local) InitWithConnectionString ¶ added in v0.5.0
func (f *Local) InitWithConnectionString(connection string, cache *MetadataCache) error
func (*Local) InitWithOptionsMap ¶ added in v0.5.0
func (f *Local) InitWithOptionsMap(opts map[string]string, cache *MetadataCache) error
func (*Local) SetMasterKey ¶
SetMasterKey sets the master key (used to encrypt/decrypt files) in the object
type MetadataCache ¶ added in v0.5.0
type MetadataCache struct {
// contains filtered or unexported fields
}
MetadataCache is a LRU cache for metadata objects
func (*MetadataCache) Add ¶ added in v0.5.0
func (c *MetadataCache) Add(name string, headerVersion uint16, headerLength int32, wrappedKey []byte, metadataLength int32, metadata *crypto.Metadata)
Add an item to the cache
func (*MetadataCache) Contains ¶ added in v0.5.0
func (c *MetadataCache) Contains(name string) bool
Contains returns true if the item is cached
func (*MetadataCache) Get ¶ added in v0.5.0
func (c *MetadataCache) Get(name string) (headerVersion uint16, headerLength int32, wrappedKey []byte, metadataLength int32, metadata *crypto.Metadata)
Get returns an element from the cache
func (*MetadataCache) Init ¶ added in v0.5.0
func (c *MetadataCache) Init() (err error)
Init the object
func (*MetadataCache) Keys ¶ added in v0.5.0
func (c *MetadataCache) Keys() []string
Keys returns the list of keys in the cache
func (*MetadataCache) Purge ¶ added in v0.5.0
func (c *MetadataCache) Purge()
Purge the cache, removing all elements
func (*MetadataCache) Remove ¶ added in v0.5.0
func (c *MetadataCache) Remove(name string)
Remove an element from the cache
type RequestRange ¶ added in v0.5.0
type RequestRange struct { // Start of the range that is requested from the plaintext, in bytes Start int64 // Amount of data requested in plaintext, from the Start byte Length int64 // Size of the header added by prvt at the beginning of the file (encoded crypto.Header, including size bytes) HeaderOffset int64 // Size of the encoded metadata object added at the beginning of the plaintext (encoded crypto.Metadata, including 2 size bytes) MetadataOffset int64 // File size, which acts as hard cap if set FileSize int64 }
RequestRange is used to request a range of data only This function uses both bytes and packages, as generated by minio/sio; each package is 64KB + 32 bytes
func NewRequestRange ¶ added in v0.5.0
func NewRequestRange(rng *utils.HttpRange) *RequestRange
NewRequestRange returns a new RequestRange object from a HttpRange one
func (*RequestRange) EndBytes ¶ added in v0.5.0
func (c *RequestRange) EndBytes() int64
EndBytes returns the end value in bytes Thats the end range for the request to the fs
func (*RequestRange) EndPackage ¶ added in v0.5.0
func (c *RequestRange) EndPackage() uint32
EndPackage returns the end package number
func (*RequestRange) LengthBytes ¶ added in v0.5.0
func (c *RequestRange) LengthBytes() int64
LengthBytes returns the number of bytes that need to be requested
func (*RequestRange) LengthPackages ¶ added in v0.5.0
func (c *RequestRange) LengthPackages() uint32
LengthPackages returns the number of packages that need to be requested
func (*RequestRange) RequestHeaderValue ¶ added in v0.5.0
func (c *RequestRange) RequestHeaderValue() string
RequestHeaderValue returns the value for the Range HTTP request reader, in bytes
func (*RequestRange) ResponseHeaderValue ¶ added in v0.5.0
func (c *RequestRange) ResponseHeaderValue() string
ResponseHeaderValue returns the value for the Content-Range HTTP response reader, in bytes
func (*RequestRange) SetFileSize ¶ added in v0.5.0
func (c *RequestRange) SetFileSize(size int64)
SetFileSize sets the FileSize value and ensures that Start and Length don't overflow
func (*RequestRange) SkipBeginning ¶ added in v0.5.0
func (c *RequestRange) SkipBeginning() int
SkipBeginning returns the number of bytes that need to be skipped from the beginning of the (decrypted) stream to match the requested range
func (*RequestRange) StartBytes ¶ added in v0.5.0
func (c *RequestRange) StartBytes() int64
StartBytes returns the start value in bytes That's the start range for the request to the fs
func (*RequestRange) StartPackage ¶ added in v0.5.0
func (c *RequestRange) StartPackage() uint32
StartPackage returns the start package number
func (*RequestRange) String ¶ added in v0.5.0
func (c *RequestRange) String() string
type S3 ¶ added in v0.1.1
type S3 struct {
// contains filtered or unexported fields
}
S3 stores files on a S3-compatible service This implementation does not rely on tags because S3 does not support conditional put requests
func (*S3) GetInfoFile ¶ added in v0.1.1
func (*S3) GetKeyId ¶ added in v0.5.0
func (f *S3) GetKeyId() string
GetKeyId returns the ID of the key used
func (*S3) GetMasterKey ¶ added in v0.5.0
func (f *S3) GetMasterKey() []byte
GetMasterKey returns the master key
func (*S3) GetWithRange ¶ added in v0.5.0
func (*S3) InitWithConnectionString ¶ added in v0.5.0
func (f *S3) InitWithConnectionString(connection string, cache *MetadataCache) error
func (*S3) InitWithOptionsMap ¶ added in v0.5.0
func (f *S3) InitWithOptionsMap(opts map[string]string, cache *MetadataCache) error
func (*S3) SetInfoFile ¶ added in v0.1.1
func (*S3) SetMasterKey ¶ added in v0.1.1
SetMasterKey sets the master key (used to encrypt/decrypt files) in the object