objects

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2019 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SwiftUserEnvVar = "ST_USER"
	SwiftKeyEnvVar  = "ST_KEY"
)
View Source
const (
	// DefaultAwsRegion represents the default AWS region for accessing AWS objects
	DefaultAwsRegion = "us-west-2"
)

Variables

This section is empty.

Functions

func CalcDigest

func CalcDigest(obj Object, downloadRangeSize int64, algorithm string) ([]byte, error)

CalcDigest calculates the digest of the object using the specified algorithm (md5 or sha256), using ranged downloads of the specified size.

func DisallowIAMFallback

func DisallowIAMFallback(awsSession *session.Session) (*session.Session, error)

DisallowIAMFallback uses reflection to check whether we're falling back to IAM credentials See https://github.com/aws/aws-sdk-go/issues/2392

func Download

func Download(obj Object, rangeSize int64, out io.Writer) (n int64, err error)

Download downloads the object in chunks of the specified rangeSize, writing the downloaded bytes to the specified io.Writer.

func EnsureS3Region

func EnsureS3Region(region string, endpoint *url.URL) string

func InitS3Session

func InitS3Session(endpointP *string, regionStrP *string) (*session.Session, error)

InitS3Session returns a new AWS session configured for S3 access via the specified endpoint and region. The verboseLogging parameter controls whether to return verbose error messages.

func IsEC2

func IsEC2() (bool, error)

IsEC2 returns true if the current system appears to be an EC2 host, false otherwise.

func RegionFromEndpoint

func RegionFromEndpoint(endpoint *url.URL) (*string, error)

RegionFromEndpoint attempts to extract an AWS region from the specified endpoint URL, returning an error if none can be found.

func ValidS3Session

func ValidS3Session(endpointP *string, regionStrP *string) (awsSession *session.Session, err error)

Types

type Object

type Object interface {
	GetEndpoint() Target

	Create(body io.Reader, length int64) (err error)
	ContentLength() (length int64, err error)
	DownloadRange(startInclusive, endInclusive int64, buffer []byte) (n int64, err error)
	Delete() (err error)

	Pretty() string
}

func NewObject

func NewObject(objURL, endpointURL *url.URL, regionStr string) (Object, error)

type S3Logger

type S3Logger struct {
}

func (*S3Logger) Log

func (*S3Logger) Log(a ...interface{})

Log implements the aws.Logger interface

type S3Object

type S3Object struct {
	Endpoint *S3Target
	Key      string
}

func (*S3Object) ContentLength

func (obj *S3Object) ContentLength() (length int64, err error)

func (*S3Object) Create

func (obj *S3Object) Create(body io.Reader, length int64) (err error)

func (*S3Object) Delete

func (obj *S3Object) Delete() (err error)

func (*S3Object) DownloadRange

func (obj *S3Object) DownloadRange(startInclusive, endInclusive int64, buffer []byte) (n int64, err error)

func (*S3Object) Get

func (obj *S3Object) Get() (h *s3.GetObjectOutput, err error)

func (*S3Object) GetEndpoint

func (obj *S3Object) GetEndpoint() Target

func (*S3Object) Head

func (obj *S3Object) Head() (h *s3.HeadObjectOutput, err error)

func (*S3Object) Pretty

func (obj *S3Object) Pretty() string

func (*S3Object) String

func (obj *S3Object) String() string

func (*S3Object) SupportsRanges

func (obj *S3Object) SupportsRanges() bool

SupportsRanges returns true if the object supports ranged downloads, false otherwise

type S3Target

type S3Target struct {
	Region   string
	Endpoint string
	Bucket   string
	// contains filtered or unexported fields
}

func NewS3Target

func NewS3Target(region string, endpointURL *url.URL, bucket string) *S3Target

func (*S3Target) Object

func (e *S3Target) Object(key string) Object

func (*S3Target) Pretty

func (e *S3Target) Pretty() string

func (*S3Target) S3

func (e *S3Target) S3() (*s3.S3, error)

func (*S3Target) Session

func (e *S3Target) Session() (*session.Session, error)

func (*S3Target) String

func (e *S3Target) String() string

type SwiftObject

type SwiftObject struct {
	Endpoint  *SwiftTarget
	Container string
	Name      string
}

func (*SwiftObject) ContentLength

func (obj *SwiftObject) ContentLength() (length int64, err error)

func (*SwiftObject) Create

func (obj *SwiftObject) Create(body io.Reader, length int64) (err error)

func (*SwiftObject) Delete

func (obj *SwiftObject) Delete() (err error)

func (*SwiftObject) DownloadRange

func (obj *SwiftObject) DownloadRange(startInclusive, endInclusive int64, buffer []byte) (n int64, err error)

func (*SwiftObject) GetEndpoint

func (obj *SwiftObject) GetEndpoint() Target

func (*SwiftObject) Pretty

func (obj *SwiftObject) Pretty() string

func (*SwiftObject) String

func (obj *SwiftObject) String() string

type SwiftTarget

type SwiftTarget struct {
	UserName  string
	APIKey    string
	AuthURL   *url.URL
	Container string
	// contains filtered or unexported fields
}

func NewSwiftEndpoint

func NewSwiftEndpoint(endpointUrl *url.URL, container string) (*SwiftTarget, error)

func (*SwiftTarget) Connection

func (e *SwiftTarget) Connection() (*swift.Connection, error)

func (*SwiftTarget) Object

func (e *SwiftTarget) Object(key string) Object

func (*SwiftTarget) Pretty

func (e *SwiftTarget) Pretty() string

func (*SwiftTarget) String

func (e *SwiftTarget) String() string

type Target

type Target interface {
	Object(key string) Object
	Pretty() string
}

Target encapsulates a service URL and a bucket or container

func NewTarget

func NewTarget(endpointURL *url.URL, bucketURL *url.URL, region string) (Target, error)

Jump to

Keyboard shortcuts

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