metaclient

package
v1.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2022 License: MIT Imports: 21 Imported by: 4

Documentation

Index

Constants

View Source
const (
	// Before lists backwards from cursor, without cursor [NOT SUPPORTED].
	Before = storj.Before
	// Backward lists backwards from cursor, including cursor [NOT SUPPORTED].
	Backward = storj.Backward
	// Forward lists forwards from cursor, including cursor.
	Forward = storj.Forward
	// After lists forwards from cursor, without cursor.
	After = storj.After
)

Variables

View Source
var (
	// ErrNoPath is an error class for using empty path.
	ErrNoPath = storj.ErrNoPath

	// ErrObjectNotFound is an error class for non-existing object.
	ErrObjectNotFound = storj.ErrObjectNotFound
)
View Source
var (
	// ErrBucket is an error class for general bucket errors.
	ErrBucket = storj.ErrBucket

	// ErrNoBucket is an error class for using empty bucket name.
	ErrNoBucket = storj.ErrNoBucket

	// ErrBucketNotFound is an error class for non-existing bucket.
	ErrBucketNotFound = storj.ErrBucketNotFound
)
View Source
var (
	// ErrInvalidType error for inalid response type casting.
	ErrInvalidType = errs.New("invalid response type")
)
View Source
var (

	// Error is the errs class of standard metainfo errors.
	Error = errs.Class("metaclient")
)

Functions

func WithRetry

func WithRetry(ctx context.Context, fn func(ctx context.Context) error) (err error)

WithRetry attempts to retry a function with exponential backoff. If the retry has occurred enough times that the delay is maxed out and the function still returns an error, the error is returned.

Types

type BatchItem

type BatchItem interface {
	BatchItem() *pb.BatchRequestItem
}

BatchItem represents single request in batch.

type BatchResponse

type BatchResponse struct {
	// contains filtered or unexported fields
}

BatchResponse single response from batch call.

func (*BatchResponse) BeginDeleteObject

func (resp *BatchResponse) BeginDeleteObject() (BeginDeleteObjectResponse, error)

BeginDeleteObject returns response for BeginDeleteObject request.

func (*BatchResponse) BeginObject

func (resp *BatchResponse) BeginObject() (BeginObjectResponse, error)

BeginObject returns response for BeginObject request.

func (*BatchResponse) BeginSegment

func (resp *BatchResponse) BeginSegment() (BeginSegmentResponse, error)

BeginSegment returns response for BeginSegment request.

func (*BatchResponse) CreateBucket

func (resp *BatchResponse) CreateBucket() (CreateBucketResponse, error)

CreateBucket returns BatchResponse for CreateBucket request.

func (*BatchResponse) DownloadSegment

func (resp *BatchResponse) DownloadSegment() (DownloadSegmentResponse, error)

DownloadSegment returns response for DownloadSegment request.

func (*BatchResponse) GetBucket

func (resp *BatchResponse) GetBucket() (GetBucketResponse, error)

GetBucket returns response for GetBucket request.

func (*BatchResponse) GetObject

func (resp *BatchResponse) GetObject() (GetObjectResponse, error)

GetObject returns response for GetObject request.

func (*BatchResponse) ListBuckets

func (resp *BatchResponse) ListBuckets() (ListBucketsResponse, error)

ListBuckets returns response for ListBuckets request.

func (*BatchResponse) ListObjects

func (resp *BatchResponse) ListObjects() (ListObjectsResponse, error)

ListObjects returns response for ListObjects request.

type BeginCopyObjectParams added in v1.8.1

type BeginCopyObjectParams struct {
	Bucket                []byte
	EncryptedObjectKey    []byte
	NewBucket             []byte
	NewEncryptedObjectKey []byte
}

BeginCopyObjectParams parameters for BeginCopyObject method.

func (*BeginCopyObjectParams) BatchItem added in v1.8.1

func (params *BeginCopyObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type BeginCopyObjectResponse added in v1.8.1

type BeginCopyObjectResponse struct {
	StreamID                  storj.StreamID
	EncryptedMetadataKeyNonce storj.Nonce
	EncryptedMetadataKey      []byte
	SegmentKeys               []EncryptedKeyAndNonce
}

BeginCopyObjectResponse response for BeginCopyObjectResponse request.

type BeginDeleteObjectParams

type BeginDeleteObjectParams struct {
	Bucket             []byte
	EncryptedObjectKey []byte
	Version            int32
	StreamID           storj.StreamID
	Status             int32
}

BeginDeleteObjectParams parameters for BeginDeleteObject method.

func (*BeginDeleteObjectParams) BatchItem

func (params *BeginDeleteObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type BeginDeleteObjectResponse

type BeginDeleteObjectResponse struct {
}

BeginDeleteObjectResponse response for BeginDeleteObject request.

type BeginMoveObjectParams

type BeginMoveObjectParams struct {
	Bucket                []byte
	EncryptedObjectKey    []byte
	NewBucket             []byte
	NewEncryptedObjectKey []byte
}

BeginMoveObjectParams parameters for BeginMoveObject method.

func (*BeginMoveObjectParams) BatchItem

func (params *BeginMoveObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type BeginMoveObjectResponse

type BeginMoveObjectResponse struct {
	StreamID                  storj.StreamID
	EncryptedMetadataKeyNonce storj.Nonce
	EncryptedMetadataKey      []byte
	SegmentKeys               []EncryptedKeyAndNonce
}

BeginMoveObjectResponse response for BeginMoveObjectResponse request.

type BeginObjectParams

type BeginObjectParams struct {
	Bucket               []byte
	EncryptedObjectKey   []byte
	Version              int32
	Redundancy           storj.RedundancyScheme
	EncryptionParameters storj.EncryptionParameters
	ExpiresAt            time.Time

	EncryptedMetadata             []byte
	EncryptedMetadataEncryptedKey []byte
	EncryptedMetadataNonce        storj.Nonce
}

BeginObjectParams parameters for BeginObject method.

func (*BeginObjectParams) BatchItem

func (params *BeginObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type BeginObjectResponse

type BeginObjectResponse struct {
	StreamID storj.StreamID
}

BeginObjectResponse response for BeginObject request.

type BeginSegmentParams

type BeginSegmentParams struct {
	StreamID      storj.StreamID
	Position      SegmentPosition
	MaxOrderLimit int64
}

BeginSegmentParams parameters for BeginSegment method.

func (*BeginSegmentParams) BatchItem

func (params *BeginSegmentParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type BeginSegmentResponse

type BeginSegmentResponse struct {
	SegmentID          storj.SegmentID
	Limits             []*pb.AddressedOrderLimit
	PiecePrivateKey    storj.PiecePrivateKey
	RedundancyStrategy eestream.RedundancyStrategy
}

BeginSegmentResponse response for BeginSegment request.

type Bucket

type Bucket = storj.Bucket

Bucket contains information about a specific bucket.

type BucketList

type BucketList = storj.BucketList

BucketList is a list of buckets.

type BucketListOptions

type BucketListOptions = storj.BucketListOptions

BucketListOptions lists objects.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client creates a grpcClient.

func DialNodeURL

func DialNodeURL(ctx context.Context, dialer rpc.Dialer, nodeURL string, apiKey *macaroon.APIKey, userAgent string) (*Client, error)

DialNodeURL dials to metainfo endpoint with the specified api key.

func NewClient

func NewClient(client pb.DRPCMetainfoClient, apiKey *macaroon.APIKey, userAgent string) *Client

NewClient creates Metainfo API client.

func (*Client) Batch

func (client *Client) Batch(ctx context.Context, requests ...BatchItem) (resp []BatchResponse, err error)

Batch sends multiple requests in one batch.

func (*Client) BeginCopyObject added in v1.8.1

func (client *Client) BeginCopyObject(ctx context.Context, params BeginCopyObjectParams) (_ BeginCopyObjectResponse, err error)

BeginCopyObject requests data needed to copy an object from one key to another.

func (*Client) BeginDeleteObject

func (client *Client) BeginDeleteObject(ctx context.Context, params BeginDeleteObjectParams) (_ RawObjectItem, err error)

BeginDeleteObject begins object deletion process.

func (*Client) BeginMoveObject

func (client *Client) BeginMoveObject(ctx context.Context, params BeginMoveObjectParams) (_ BeginMoveObjectResponse, err error)

BeginMoveObject begins process of moving object from one key to another.

func (*Client) BeginObject

func (client *Client) BeginObject(ctx context.Context, params BeginObjectParams) (_ BeginObjectResponse, err error)

BeginObject begins object creation.

func (*Client) BeginSegment

func (client *Client) BeginSegment(ctx context.Context, params BeginSegmentParams) (_ BeginSegmentResponse, err error)

BeginSegment begins a segment upload.

func (*Client) Close

func (client *Client) Close() error

Close closes the dialed connection.

func (*Client) CommitObject

func (client *Client) CommitObject(ctx context.Context, params CommitObjectParams) (err error)

CommitObject commits a created object.

func (*Client) CommitSegment

func (client *Client) CommitSegment(ctx context.Context, params CommitSegmentParams) (err error)

CommitSegment commits an uploaded segment.

func (*Client) CreateBucket

func (client *Client) CreateBucket(ctx context.Context, params CreateBucketParams) (respBucket Bucket, err error)

CreateBucket creates a new bucket.

func (*Client) DeleteBucket

func (client *Client) DeleteBucket(ctx context.Context, params DeleteBucketParams) (_ Bucket, err error)

DeleteBucket deletes a bucket.

func (*Client) DownloadObject

func (client *Client) DownloadObject(ctx context.Context, params DownloadObjectParams) (_ DownloadObjectResponse, err error)

DownloadObject gets object information, lists segments and downloads the first segment.

func (*Client) DownloadSegmentWithRS

func (client *Client) DownloadSegmentWithRS(ctx context.Context, params DownloadSegmentParams) (_ DownloadSegmentWithRSResponse, err error)

DownloadSegmentWithRS gets information for downloading remote segment or data from an inline segment.

func (*Client) FinishCopyObject added in v1.8.1

func (client *Client) FinishCopyObject(ctx context.Context, params FinishCopyObjectParams) (_ FinishCopyObjectResponse, err error)

FinishCopyObject finishes process of copying object from one key to another.

func (*Client) FinishMoveObject

func (client *Client) FinishMoveObject(ctx context.Context, params FinishMoveObjectParams) (err error)

FinishMoveObject finishes process of moving object from one key to another.

func (*Client) GetBucket

func (client *Client) GetBucket(ctx context.Context, params GetBucketParams) (respBucket Bucket, err error)

GetBucket returns a bucket.

func (*Client) GetObject

func (client *Client) GetObject(ctx context.Context, params GetObjectParams) (_ RawObjectItem, err error)

GetObject gets single object.

func (*Client) GetObjectIPs

func (client *Client) GetObjectIPs(ctx context.Context, params GetObjectIPsParams) (r *GetObjectIPsResponse, err error)

GetObjectIPs returns the IP addresses of the nodes which hold the object.

func (*Client) GetProjectInfo

func (client *Client) GetProjectInfo(ctx context.Context) (response *pb.ProjectInfoResponse, err error)

GetProjectInfo gets the ProjectInfo for the api key associated with the metainfo client.

func (*Client) ListBuckets

func (client *Client) ListBuckets(ctx context.Context, params ListBucketsParams) (_ BucketList, err error)

ListBuckets lists buckets.

func (*Client) ListObjects

func (client *Client) ListObjects(ctx context.Context, params ListObjectsParams) (_ []RawObjectListItem, more bool, err error)

ListObjects lists objects according to specific parameters.

func (*Client) ListPendingObjectStreams

func (client *Client) ListPendingObjectStreams(ctx context.Context, params ListPendingObjectStreamsParams) (_ ListPendingObjectStreamsResponse, err error)

ListPendingObjectStreams lists pending objects with the specified object key in the specified bucket.

func (*Client) ListSegments

func (client *Client) ListSegments(ctx context.Context, params ListSegmentsParams) (_ ListSegmentsResponse, err error)

ListSegments lists segments according to specific parameters.

func (*Client) MakeInlineSegment

func (client *Client) MakeInlineSegment(ctx context.Context, params MakeInlineSegmentParams) (err error)

MakeInlineSegment creates an inline segment.

func (*Client) RevokeAPIKey

func (client *Client) RevokeAPIKey(ctx context.Context, params RevokeAPIKeyParams) (err error)

RevokeAPIKey revokes the APIKey provided in the params.

func (*Client) SetRawAPIKey

func (client *Client) SetRawAPIKey(key []byte)

SetRawAPIKey sets the client's raw API key. Mainly used for testing.

func (*Client) UpdateObjectMetadata

func (client *Client) UpdateObjectMetadata(ctx context.Context, params UpdateObjectMetadataParams) (err error)

UpdateObjectMetadata replaces objects metadata.

type CommitObjectParams

type CommitObjectParams struct {
	StreamID storj.StreamID

	EncryptedMetadataNonce        storj.Nonce
	EncryptedMetadata             []byte
	EncryptedMetadataEncryptedKey []byte
}

CommitObjectParams parmaters for CommitObject method.

func (*CommitObjectParams) BatchItem

func (params *CommitObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type CommitSegmentParams

type CommitSegmentParams struct {
	SegmentID         storj.SegmentID
	Encryption        SegmentEncryption
	SizeEncryptedData int64
	PlainSize         int64
	EncryptedTag      []byte

	UploadResult []*pb.SegmentPieceUploadResult
}

CommitSegmentParams parameters for CommitSegment method.

func (*CommitSegmentParams) BatchItem

func (params *CommitSegmentParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type CreateBucketParams

type CreateBucketParams struct {
	Name []byte
}

CreateBucketParams parameters for CreateBucket method.

func (*CreateBucketParams) BatchItem

func (params *CreateBucketParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type CreateBucketResponse

type CreateBucketResponse struct {
	Bucket Bucket
}

CreateBucketResponse response for CreateBucket request.

type CreateObject

type CreateObject struct {
	Metadata    map[string]string
	ContentType string
	Expires     time.Time

	storj.RedundancyScheme
	storj.EncryptionParameters
}

CreateObject has optional parameters that can be set.

func (CreateObject) Object

func (create CreateObject) Object(bucket Bucket, path storj.Path) Object

Object converts the CreateObject to an object with unitialized values.

type DB

type DB struct {
	// contains filtered or unexported fields
}

DB implements metainfo database.

func New

func New(metainfo *Client, encStore *encryption.Store) *DB

New creates a new metainfo database.

func (*DB) Close

func (db *DB) Close() error

Close closes the underlying resources passed to the metainfo DB.

func (*DB) CreateBucket

func (db *DB) CreateBucket(ctx context.Context, bucketName string) (newBucket Bucket, err error)

CreateBucket creates a new bucket with the specified information.

func (*DB) CreateObject

func (db *DB) CreateObject(ctx context.Context, bucket, key string, createInfo *CreateObject) (object *MutableObject, err error)

CreateObject creates an uploading object and returns an interface for uploading Object information.

func (*DB) DeleteBucket

func (db *DB) DeleteBucket(ctx context.Context, bucketName string, deleteAll bool) (bucket Bucket, err error)

DeleteBucket deletes bucket.

func (*DB) DeleteObject

func (db *DB) DeleteObject(ctx context.Context, bucket, key string) (_ Object, err error)

DeleteObject deletes an object from database.

func (*DB) DownloadObject

func (db *DB) DownloadObject(ctx context.Context, bucket, key string, options DownloadOptions) (info DownloadInfo, err error)

DownloadObject gets object information, lists segments and downloads the first segment.

func (*DB) GetBucket

func (db *DB) GetBucket(ctx context.Context, bucketName string) (bucket Bucket, err error)

GetBucket gets bucket information.

func (*DB) GetObject

func (db *DB) GetObject(ctx context.Context, bucket, key string) (info Object, err error)

GetObject returns information about an object.

func (*DB) GetObjectIPs

func (db *DB) GetObjectIPs(ctx context.Context, bucket Bucket, key string) (_ *GetObjectIPsResponse, err error)

GetObjectIPs returns the IP addresses of the nodes which hold the object.

func (*DB) ListBuckets

func (db *DB) ListBuckets(ctx context.Context, options BucketListOptions) (bucketList BucketList, err error)

ListBuckets lists buckets.

func (*DB) ListObjects

func (db *DB) ListObjects(ctx context.Context, bucket string, options ListOptions) (list ObjectList, err error)

ListObjects lists objects in bucket based on the ListOptions.

func (*DB) ListPendingObjectStreams

func (db *DB) ListPendingObjectStreams(ctx context.Context, bucket string, options ListOptions) (list ObjectList, err error)

ListPendingObjectStreams lists streams for a specific pending object key.

func (*DB) ListPendingObjects

func (db *DB) ListPendingObjects(ctx context.Context, bucket string, options ListOptions) (list ObjectList, err error)

ListPendingObjects lists pending objects in bucket based on the ListOptions.

func (*DB) ListSegments

func (db *DB) ListSegments(ctx context.Context, params ListSegmentsParams) (response ListSegmentsResponse, err error)

ListSegments returns paged segments list.

func (*DB) ModifyObject

func (db *DB) ModifyObject(ctx context.Context, bucket, key string) (object *MutableObject, err error)

ModifyObject modifies a committed object.

func (*DB) ModifyPendingObject

func (db *DB) ModifyPendingObject(ctx context.Context, bucket, key string) (object *MutableObject, err error)

ModifyPendingObject creates an interface for updating a partially uploaded object.

func (*DB) ObjectFromRawObjectItem added in v1.8.1

func (db *DB) ObjectFromRawObjectItem(ctx context.Context, bucket, key string, objectInfo RawObjectItem) (Object, error)

ObjectFromRawObjectItem converts RawObjectItem into storj.Object struct.

func (*DB) UpdateObjectMetadata

func (db *DB) UpdateObjectMetadata(ctx context.Context, bucket, key string, newMetadata map[string]string) (err error)

UpdateObjectMetadata replaces the custom metadata for the object at the specific key with newMetadata. Any existing custom metadata will be deleted.

type DeleteBucketParams

type DeleteBucketParams struct {
	Name      []byte
	DeleteAll bool
}

DeleteBucketParams parmaters for DeleteBucket method.

func (*DeleteBucketParams) BatchItem

func (params *DeleteBucketParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type DownloadInfo

type DownloadInfo struct {
	Object             Object
	DownloadedSegments []DownloadSegmentWithRSResponse
	ListSegments       ListSegmentsResponse
	Range              StreamRange
}

DownloadInfo contains response for DownloadObject.

type DownloadObjectParams

type DownloadObjectParams struct {
	Bucket             []byte
	EncryptedObjectKey []byte

	Range StreamRange
}

DownloadObjectParams parameters for DownloadSegment method.

func (*DownloadObjectParams) BatchItem

func (params *DownloadObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type DownloadObjectResponse

type DownloadObjectResponse struct {
	Object             RawObjectItem
	DownloadedSegments []DownloadSegmentWithRSResponse
	ListSegments       ListSegmentsResponse
}

DownloadObjectResponse response for DownloadSegment request.

type DownloadOptions

type DownloadOptions struct {
	Range StreamRange
}

DownloadOptions contains additional options for downloading.

type DownloadSegmentParams

type DownloadSegmentParams struct {
	StreamID storj.StreamID
	Position SegmentPosition
}

DownloadSegmentParams parameters for DownloadSegment method.

func (*DownloadSegmentParams) BatchItem

func (params *DownloadSegmentParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type DownloadSegmentResponse

type DownloadSegmentResponse struct {
	Info SegmentDownloadResponseInfo

	Limits []*pb.AddressedOrderLimit
}

DownloadSegmentResponse response for DownloadSegment request.

type DownloadSegmentWithRSResponse

type DownloadSegmentWithRSResponse struct {
	Info   SegmentDownloadInfo
	Limits []*pb.AddressedOrderLimit
}

DownloadSegmentWithRSResponse contains information for downloading remote segment or data from an inline segment.

type EncryptedKeyAndNonce

type EncryptedKeyAndNonce struct {
	Position          SegmentPosition
	EncryptedKeyNonce storj.Nonce
	EncryptedKey      []byte
}

EncryptedKeyAndNonce holds single segment encrypted key.

type ExponentialBackoff

type ExponentialBackoff struct {
	Max time.Duration
	Min time.Duration
	// contains filtered or unexported fields
}

ExponentialBackoff keeps track of how long we should sleep between failing attempts.

func (*ExponentialBackoff) Maxed

func (e *ExponentialBackoff) Maxed() bool

Maxed returns true if the wait time has maxed out.

func (*ExponentialBackoff) Wait

func (e *ExponentialBackoff) Wait()

Wait should be called when there is a failure. Each time it is called it will sleep an exponentially longer time, up to a max.

type FinishCopyObjectParams added in v1.8.1

type FinishCopyObjectParams struct {
	StreamID                     storj.StreamID
	NewBucket                    []byte
	NewEncryptedObjectKey        []byte
	NewEncryptedMetadataKeyNonce storj.Nonce
	NewEncryptedMetadataKey      []byte
	NewSegmentKeys               []EncryptedKeyAndNonce
}

FinishCopyObjectParams parameters for FinishCopyObject method.

func (*FinishCopyObjectParams) BatchItem added in v1.8.1

func (params *FinishCopyObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type FinishCopyObjectResponse added in v1.8.1

type FinishCopyObjectResponse struct {
	Info RawObjectItem
}

FinishCopyObjectResponse response for FinishCopyObjectResponse request.

type FinishMoveObjectParams

type FinishMoveObjectParams struct {
	StreamID                     storj.StreamID
	NewBucket                    []byte
	NewEncryptedObjectKey        []byte
	NewEncryptedMetadataKeyNonce storj.Nonce
	NewEncryptedMetadataKey      []byte
	NewSegmentKeys               []EncryptedKeyAndNonce
}

FinishMoveObjectParams parameters for FinishMoveObject method.

func (*FinishMoveObjectParams) BatchItem

func (params *FinishMoveObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type GetBucketParams

type GetBucketParams struct {
	Name []byte
}

GetBucketParams parmaters for GetBucketParams method.

func (*GetBucketParams) BatchItem

func (params *GetBucketParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type GetBucketResponse

type GetBucketResponse struct {
	Bucket Bucket
}

GetBucketResponse response for GetBucket request.

type GetObjectIPsParams

type GetObjectIPsParams struct {
	Bucket             []byte
	EncryptedObjectKey []byte
	Version            int32
}

GetObjectIPsParams are params for the GetObjectIPs request.

type GetObjectIPsResponse

type GetObjectIPsResponse struct {
	IPPorts            [][]byte
	SegmentCount       int64
	PieceCount         int64
	ReliablePieceCount int64
}

GetObjectIPsResponse is the response from GetObjectIPs.

type GetObjectParams

type GetObjectParams struct {
	Bucket             []byte
	EncryptedObjectKey []byte
	Version            int32

	RedundancySchemePerSegment bool
}

GetObjectParams parameters for GetObject method.

func (*GetObjectParams) BatchItem

func (params *GetObjectParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type GetObjectResponse

type GetObjectResponse struct {
	Info RawObjectItem
}

GetObjectResponse response for GetObject request.

type LastSegment

type LastSegment = storj.LastSegment

LastSegment contains info about last segment.

type ListBucketsParams

type ListBucketsParams struct {
	ListOpts BucketListOptions
}

ListBucketsParams parmaters for ListBucketsParams method.

func (*ListBucketsParams) BatchItem

func (params *ListBucketsParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type ListBucketsResponse

type ListBucketsResponse struct {
	BucketList BucketList
}

ListBucketsResponse response for ListBucket request.

type ListDirection

type ListDirection = storj.ListDirection

ListDirection specifies listing direction.

type ListObjectsParams

type ListObjectsParams struct {
	Bucket                []byte
	EncryptedPrefix       []byte
	EncryptedCursor       []byte
	Limit                 int32
	IncludeCustomMetadata bool
	IncludeSystemMetadata bool
	Recursive             bool
	Status                int32
}

ListObjectsParams parameters for ListObjects method.

func (*ListObjectsParams) BatchItem

func (params *ListObjectsParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type ListObjectsResponse

type ListObjectsResponse struct {
	Items []RawObjectListItem
	More  bool
}

ListObjectsResponse response for ListObjects request.

type ListOptions

type ListOptions struct {
	Prefix                storj.Path
	Cursor                storj.Path // Cursor is relative to Prefix, full path is Prefix + Cursor
	Delimiter             rune
	Recursive             bool
	Direction             ListDirection
	Limit                 int
	IncludeCustomMetadata bool
	IncludeSystemMetadata bool
	Status                int32
}

ListOptions lists objects.

func (ListOptions) NextPage

func (opts ListOptions) NextPage(list ObjectList) ListOptions

NextPage returns options for listing the next page.

type ListPendingObjectStreamsParams

type ListPendingObjectStreamsParams struct {
	Bucket             []byte
	EncryptedObjectKey []byte
	EncryptedCursor    []byte
	Limit              int32
}

ListPendingObjectStreamsParams parameters for ListPendingObjectStreams method.

func (*ListPendingObjectStreamsParams) BatchItem

func (params *ListPendingObjectStreamsParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type ListPendingObjectStreamsResponse

type ListPendingObjectStreamsResponse struct {
	Items []RawObjectListItem
	More  bool
}

ListPendingObjectStreamsResponse response for ListPendingObjectStreams request.

type ListSegmentsParams

type ListSegmentsParams struct {
	StreamID []byte
	Cursor   SegmentPosition
	Limit    int32
	Range    StreamRange
}

ListSegmentsParams parameters for ListSegments method.

func (*ListSegmentsParams) BatchItem

func (params *ListSegmentsParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type ListSegmentsResponse

type ListSegmentsResponse struct {
	Items                []SegmentListItem
	More                 bool
	EncryptionParameters storj.EncryptionParameters
}

ListSegmentsResponse response for ListSegments request.

type MakeInlineSegmentParams

type MakeInlineSegmentParams struct {
	StreamID            storj.StreamID
	Position            SegmentPosition
	Encryption          SegmentEncryption
	EncryptedInlineData []byte
	PlainSize           int64
	EncryptedTag        []byte
}

MakeInlineSegmentParams parameters for MakeInlineSegment method.

func (*MakeInlineSegmentParams) BatchItem

func (params *MakeInlineSegmentParams) BatchItem() *pb.BatchRequestItem

BatchItem returns single item for batch request.

type Meta

type Meta struct {
	Modified   time.Time
	Expiration time.Time
	Size       int64
	Data       []byte
}

Meta info about a segment.

type MutableObject

type MutableObject struct {
	// contains filtered or unexported fields
}

MutableObject is for creating an object stream.

func (*MutableObject) CreateDynamicStream

func (object *MutableObject) CreateDynamicStream(ctx context.Context, metadata SerializableMeta, expires time.Time) (_ *MutableStream, err error)

CreateDynamicStream creates a new dynamic stream for the object.

func (*MutableObject) CreateStream

func (object *MutableObject) CreateStream(ctx context.Context) (_ *MutableStream, err error)

CreateStream creates a new stream for the object.

func (*MutableObject) Info

func (object *MutableObject) Info() Object

Info gets the current information about the object.

type MutableStream

type MutableStream struct {
	// contains filtered or unexported fields
}

MutableStream is for manipulating stream information.

func (*MutableStream) BucketName

func (stream *MutableStream) BucketName() string

BucketName returns streams bucket name.

func (*MutableStream) Expires

func (stream *MutableStream) Expires() time.Time

Expires returns stream expiration time.

func (*MutableStream) Info

func (stream *MutableStream) Info() Object

Info returns object info about the stream.

func (*MutableStream) Metadata

func (stream *MutableStream) Metadata() ([]byte, error)

Metadata returns metadata associated with the stream.

func (*MutableStream) Path

func (stream *MutableStream) Path() string

Path returns streams path.

type Object

type Object = storj.Object

Object contains information about a specific object.

type ObjectInfo

type ObjectInfo = storj.ObjectInfo

ObjectInfo contains information about a specific object.

type ObjectList

type ObjectList = storj.ObjectList

ObjectList is a list of objects.

type RawObjectItem

type RawObjectItem struct {
	Version            uint32
	Bucket             string
	EncryptedObjectKey []byte

	StreamID storj.StreamID

	Created  time.Time
	Modified time.Time
	Expires  time.Time

	PlainSize int64

	EncryptedMetadataNonce        storj.Nonce
	EncryptedMetadataEncryptedKey []byte
	EncryptedMetadata             []byte

	EncryptionParameters storj.EncryptionParameters
	RedundancyScheme     storj.RedundancyScheme
}

RawObjectItem represents raw object item from get request.

type RawObjectListItem

type RawObjectListItem struct {
	EncryptedObjectKey            []byte
	Version                       int32
	Status                        int32
	CreatedAt                     time.Time
	StatusAt                      time.Time
	ExpiresAt                     time.Time
	PlainSize                     int64
	EncryptedMetadataNonce        storj.Nonce
	EncryptedMetadataEncryptedKey []byte
	EncryptedMetadata             []byte
	StreamID                      storj.StreamID
	IsPrefix                      bool
}

RawObjectListItem represents raw object item from list objects request.

type RevokeAPIKeyParams

type RevokeAPIKeyParams struct {
	APIKey []byte
}

RevokeAPIKeyParams contain params for a RevokeAPIKey request.

type SegmentDownloadInfo

type SegmentDownloadInfo struct {
	SegmentID           storj.SegmentID
	PlainOffset         int64
	PlainSize           int64
	EncryptedSize       int64
	EncryptedInlineData []byte
	PiecePrivateKey     storj.PiecePrivateKey
	SegmentEncryption   SegmentEncryption
	RedundancyScheme    storj.RedundancyScheme
	Position            *SegmentPosition
}

SegmentDownloadInfo represents information necessary for downloading segment (inline and remote).

type SegmentDownloadResponseInfo

type SegmentDownloadResponseInfo struct {
	SegmentID           storj.SegmentID
	EncryptedSize       int64
	EncryptedInlineData []byte
	Next                SegmentPosition
	Position            SegmentPosition
	PiecePrivateKey     storj.PiecePrivateKey

	SegmentEncryption SegmentEncryption
}

SegmentDownloadResponseInfo represents segment download information inline/remote.

type SegmentEncryption

type SegmentEncryption = storj.SegmentEncryption

SegmentEncryption represents segment encryption key and nonce.

type SegmentListItem

type SegmentListItem struct {
	Position          SegmentPosition
	PlainSize         int64
	PlainOffset       int64
	CreatedAt         time.Time
	EncryptedETag     []byte
	EncryptedKeyNonce storj.Nonce
	EncryptedKey      []byte
}

SegmentListItem represents listed segment.

type SegmentPosition

type SegmentPosition = storj.SegmentPosition

SegmentPosition segment position in object.

type SerializableMeta

type SerializableMeta interface {
	Metadata() ([]byte, error)
}

SerializableMeta is an interface for getting pb.SerializableMeta.

type Stream

type Stream = storj.Stream

Stream is information about an object stream.

type StreamRange

type StreamRange struct {
	Mode   StreamRangeMode
	Start  int64
	Limit  int64
	Suffix int64
}

StreamRange contains range specification.

func (StreamRange) Normalize

func (streamRange StreamRange) Normalize(plainSize int64) StreamRange

Normalize converts the range to a StreamRangeStartLimit or StreamRangeAll.

type StreamRangeMode

type StreamRangeMode byte

StreamRangeMode contains different modes for range.

const (
	// StreamRangeAll selects all.
	StreamRangeAll StreamRangeMode = iota
	// StreamRangeStart selects starting from range.Start.
	StreamRangeStart
	// StreamRangeStartLimit selects starting from range.Start to range.End (inclusive).
	StreamRangeStartLimit
	// StreamRangeSuffix selects last range.Suffix bytes.
	StreamRangeSuffix
)

type UpdateObjectMetadataParams

type UpdateObjectMetadataParams struct {
	Bucket             []byte
	EncryptedObjectKey []byte
	Version            int32
	StreamID           storj.StreamID

	EncryptedMetadataNonce        storj.Nonce
	EncryptedMetadata             []byte
	EncryptedMetadataEncryptedKey []byte
}

UpdateObjectMetadataParams are params for the UpdateObjectMetadata request.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL