s3blob

package
v0.0.0-...-90deddd Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2023 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package s3blob implements the blob interfaces for S3.

Index

Constants

This section is empty.

Variables

View Source
var DefaultRegion = "us-east-1"

DefaultRegion is the region used for s3 requests if a bucket's region is undiscoverable (e.g., lacking permissions for the GetBucketLocation API call.)

Amazon generally defaults to us-east-1 when regions are unspecified (or undiscoverable), but this can be overridden if a different default is desired.

Functions

This section is empty.

Types

type Bucket

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

Bucket represents an s3 bucket; it implements blob.Bucket.

func NewBucket

func NewBucket(name string, client s3iface.S3API) *Bucket

NewBucket returns a new S3 bucket that uses the provided client for SDK calls. NewBucket is primarily intended for testing.

func (*Bucket) Copy

func (b *Bucket) Copy(ctx context.Context, src, dst string, contentHash string) error

Copy copies the key src to the key dst. This is done directly without streaming the data through the client. If a non-empty contentHash is provided, it is stored in the object's metadata.

func (*Bucket) CopyFrom

func (b *Bucket) CopyFrom(ctx context.Context, srcBucket blob.Bucket, src, dst string) error

CopyFrom copies from bucket src and key srcKey into this bucket. This is done directly without streaming the data through the client.

func (*Bucket) Delete

func (b *Bucket) Delete(ctx context.Context, keys ...string) (err error)

Delete removes the provided keys in bulk.

func (*Bucket) Download

func (b *Bucket) Download(ctx context.Context, key, etag string, size int64, w io.WriterAt) (int64, error)

Download downloads the object named by the provided key. Download uses the AWS SDK's download manager, performing concurrent downloads to the provided io.WriterAt.

func (*Bucket) File

func (b *Bucket) File(ctx context.Context, key string) (reflow.File, error)

File returns metadata for the provided key.

func (*Bucket) Get

func (b *Bucket) Get(ctx context.Context, key, etag string) (io.ReadCloser, reflow.File, error)

Get retrieves the object at the provided key.

func (*Bucket) Location

func (b *Bucket) Location() string

Location returns the s3 URL of this bucket, e.g., s3://grail-reflow/.

func (*Bucket) Put

func (b *Bucket) Put(ctx context.Context, key string, size int64, body io.Reader, contentHash string) error

Put stores the contents of the provided io.Reader at the provided key and attaches the given contentHash to the object's metadata.

func (*Bucket) Scan

func (b *Bucket) Scan(prefix string, withMetadata bool) blob.Scanner

Scan returns a scanner that iterates over all objects in the provided prefix. If withMetadata is true, the scanner is configured to make a best-effort attempt to fetch each object's metadata.

func (*Bucket) Snapshot

func (b *Bucket) Snapshot(ctx context.Context, prefix string) (reflow.Fileset, error)

Snapshot returns an un-loaded Reflow fileset of the contents at the provided prefix.

type Store

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

Store implements blob.Store for S3. Buckets in store correspond exactly with buckets in S3. Store manages region discovery and session maintenance so that S3 access can be treated uniformly across regions.

func New

func New(sess *session.Session) *Store

New returns a new store that uses the provided session for API access.

func (*Store) Bucket

func (s *Store) Bucket(ctx context.Context, bucket string) (blob.Bucket, error)

Bucket returns the s3 bucket with the provided name. An errors.NotExist error is returned if the bucket does not exist.

Jump to

Keyboard shortcuts

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