Documentation ¶
Index ¶
- Constants
- Variables
- func UnixTimePrefixedRandomNonce(size int) []byte
- type Client
- type Config
- type DB
- func (db *DB) Close() error
- func (db *DB) Compact() error
- func (db *DB) Delete(key []byte) error
- func (db *DB) Get(key []byte) ([]byte, error)
- func (s *DB) GetStorageEngine() interface{}
- func (db *DB) Metrics() (tit string, metrics []map[string]interface{})
- func (db *DB) NewIterator() driver.IIterator
- func (db *DB) NewSnapshot() (driver.ISnapshot, error)
- func (db *DB) NewWriteBatch() driver.IWriteBatch
- func (db *DB) Put(key, value []byte) error
- func (db *DB) S3Delete(key []byte) error
- func (db *DB) S3EncodeMetaKey(key []byte) []byte
- func (db *DB) S3Get(key []byte) ([]byte, error)
- func (db *DB) S3Put(key, value []byte) error
- func (db *DB) SyncDelete(key []byte) error
- func (db *DB) SyncPut(key []byte, value []byte) error
- type Iterator
- type Options
- type Snapshot
- type Store
- type WriteBatch
Constants ¶
const ( StorageName = "oss" MB int64 = 1024 * 1024 )
Variables ¶
var DefaultOptions = Options{ Codec: encoding.JSON, }
DefaultOptions is an Options object with default values. Region: "" (use shared config file or environment variable), AWSaccessKeyID: "" (use shared credentials file or environment variable), AWSsecretAccessKey: "" (use shared credentials file or environment variable), CustomEndpoint: "", UsePathStyleAddressing: false, Codec: encoding.JSON
var OssDefaultConfig = Config{
HotCacheSize: defaultHotCacheSize,
EndPointConnection: "http://localhost:9000",
AccessKey: "AKIAIOSFODNN7EXAMPLE",
Secretkey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
}
Functions ¶
func UnixTimePrefixedRandomNonce ¶
UnixTimePrefixedRandomNonce takes an int for the nonce size and returns a byte slice of length size. A byte slice is created for the nonce and filled with random data from `crypto/rand`, then the first 4 bytes of the nonce are overwritten with LittleEndian encoding of `time.Now().Unix()` The purpose of this function is to avoid an unlikely collision in randomly generating nonces by prefixing the nonce with time series data.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a gokv.Store implementation for S3.
func NewClient ¶
NewClient creates a new S3 client.
Credentials can be set in the options, but it's recommended to either use the shared credentials file (Linux: "~/.aws/credentials", Windows: "%UserProfile%\.aws\credentials") or environment variables (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY). See https://github.com/awsdocs/aws-go-developer-guide/blob/0ae5712d120d43867cf81de875cb7505f62f2d71/doc_source/configuring-sdk.rst#specifying-credentials.
func (Client) Close ¶
Close closes the client. In the S3 implementation this doesn't have any effect.
func (Client) Delete ¶
Delete deletes the stored value for the given key. Deleting a non-existing key-value pair does NOT lead to an error. The key must not be "".
func (Client) Get ¶
Get retrieves the stored value for the given key. You need to pass a pointer to the value, so in case of a struct the automatic unmarshalling can populate the fields of the object that v points to with the values of the retrieved object's values. If no value is found it returns (false, nil). The key must not be "" and the pointer must not be nil.
type DB ¶
type DB struct {
// contains filtered or unexported fields
}
func (*DB) GetStorageEngine ¶
func (s *DB) GetStorageEngine() interface{}
func (*DB) NewIterator ¶
func (*DB) NewWriteBatch ¶
func (db *DB) NewWriteBatch() driver.IWriteBatch
func (*DB) S3EncodeMetaKey ¶
func (*DB) SyncDelete ¶
type Options ¶
type Options struct { // Name of the S3 bucket. // The bucket is automatically created if it doesn't exist yet. BucketName string // Region of the S3 service you want to use. // Valid values: https://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region. // E.g. "us-west-2". // Optional (read from shared config file or environment variable if not set). // Environment variable: "AWS_REGION". // // Note: A region is also required when using an S3-compatible cloud service and even when using a self-hosted solution. // Example for Google Cloud Storage: "EUROPE-WEST3". // Example for Alibaba Cloud Object Storage Service (OSS): "oss-ap-southeast-1". // Example for Scaleway Object Storage: "nl-ams". // Example for a locally running Minio server: "foo" (any value works). Region string // AWS access key ID (part of the credentials). // Optional (read from shared credentials file or environment variable if not set). // Environment variable: "AWS_ACCESS_KEY_ID". AWSaccessKeyID string // AWS secret access key (part of the credentials). // Optional (read from shared credentials file or environment variable if not set). // Environment variable: "AWS_SECRET_ACCESS_KEY". AWSsecretAccessKey string // CustomEndpoint allows you to set a custom S3 service endpoint. // This must be set if you want to use a different S3-compatible cloud service or self-hosted solution. // Example for Google Cloud Storage: "storage.googleapis.com". // Example for Alibaba Cloud Object Storage Service (OSS): "oss-ap-southeast-1.aliyuncs.com" (depending on the region you want to use). // Example for Scaleway Object Storage: "s3.nl-ams.scw.cloud" (depending on the region you want to use). // Example for a locally running Minio server: "http://localhost:9000". // If you don't include "http://", then HTTPS (with TLS) will be used. // Optional ("" by default) CustomEndpoint string // S3 differentiates between "virtual hosted bucket addressing" and "path-style addressing". // Example URL for the virtual host style: http://BUCKET.s3.amazonaws.com/KEY. // Example UL for the path style: http://s3.amazonaws.com/BUCKET/KEY. // Most S3-compatible servers work with both styles, // but some work only with the virtual host style (e.g. Alibaba Cloud Object Storage Service (OSS)) // and some work only with the path style (especially self-hosted services like a Minio server running on localhost). // Optional (false by default). UsePathStyleAddressing bool // Encoding format. // Optional (encoding.JSON by default). Codec encoding.Codec }
Options are the options for the S3 client.
type Snapshot ¶
type Snapshot struct {
// contains filtered or unexported fields
}
func (*Snapshot) NewIterator ¶
type WriteBatch ¶
type WriteBatch struct {
// contains filtered or unexported fields
}
func (*WriteBatch) Close ¶
func (w *WriteBatch) Close()
func (*WriteBatch) Commit ¶
func (w *WriteBatch) Commit() error
func (*WriteBatch) Data ¶
func (w *WriteBatch) Data() []byte
func (*WriteBatch) Delete ¶
func (w *WriteBatch) Delete(key []byte)
func (*WriteBatch) Put ¶
func (w *WriteBatch) Put(key, value []byte)
func (*WriteBatch) Rollback ¶
func (w *WriteBatch) Rollback() error
func (*WriteBatch) SyncCommit ¶
func (w *WriteBatch) SyncCommit() error