cloudstorage

package
v0.0.0-...-122f59b Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const MaxContentLength = 10 * 1024 * 1024

MaxContentLength is 10MiB.

View Source
const PresignGetExpires time.Duration = 1 * duration.PerHour

PresignGetExpires is how long the presign GET request remains valid.

View Source
const PresignPutExpires time.Duration = 15 * duration.PerMinute

PresignPutExpires is how long the presign PUT request remains valid.

Variables

View Source
var DependencySet = wire.NewSet(
	wire.Struct(new(Provider), "*"),
)

Functions

This section is empty.

Types

type AzureStorage

type AzureStorage struct {
	ServiceURL     string
	StorageAccount string
	Container      string
	AccessKey      string
	Clock          clock.Clock
}

func NewAzureStorage

func NewAzureStorage(serviceURL string, storageAccount string, accessKey string, container string, c clock.Clock) *AzureStorage

func (*AzureStorage) MakeDirector

func (s *AzureStorage) MakeDirector(extractKey func(r *http.Request) string) func(r *http.Request)

func (*AzureStorage) PresignGetObject

func (s *AzureStorage) PresignGetObject(name string) (*url.URL, error)

func (*AzureStorage) PresignHeadObject

func (s *AzureStorage) PresignHeadObject(name string) (*url.URL, error)

func (*AzureStorage) PresignPutObject

func (s *AzureStorage) PresignPutObject(name string, header http.Header) (*http.Request, error)

func (*AzureStorage) SignedURL

func (s *AzureStorage) SignedURL(name string, now time.Time, duration time.Duration, perm azblob.BlobSASPermissions) (*url.URL, error)

type GCSStorage

type GCSStorage struct {
	ServiceAccount  string
	Bucket          string
	CredentialsJSON []byte
	Clock           clock.Clock
	// contains filtered or unexported fields
}

func NewGCSStorage

func NewGCSStorage(
	credentialsJSON []byte,
	serviceAccount string,
	bucket string,
	c clock.Clock,
) (*GCSStorage, error)

func (*GCSStorage) MakeDirector

func (s *GCSStorage) MakeDirector(extractKey func(r *http.Request) string) func(r *http.Request)

func (*GCSStorage) PresignGetOrHeadObject

func (s *GCSStorage) PresignGetOrHeadObject(name string, method string) (*url.URL, error)

func (*GCSStorage) PresignHeadObject

func (s *GCSStorage) PresignHeadObject(name string) (*url.URL, error)

func (*GCSStorage) PresignPutObject

func (s *GCSStorage) PresignPutObject(name string, header http.Header) (*http.Request, error)

type HeaderField

type HeaderField struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

type PresignUploadRequest

type PresignUploadRequest struct {
	Key     string                 `json:"key"`
	Headers map[string]interface{} `json:"headers"`
}

func (*PresignUploadRequest) ContentLength

func (r *PresignUploadRequest) ContentLength() (contentLength int)

func (*PresignUploadRequest) HTTPHeader

func (r *PresignUploadRequest) HTTPHeader() http.Header

func (*PresignUploadRequest) Sanitize

func (r *PresignUploadRequest) Sanitize()

type PresignUploadResponse

type PresignUploadResponse struct {
	Key     string        `json:"key"`
	URL     string        `json:"url"`
	Method  string        `json:"method"`
	Headers []HeaderField `json:"headers"`
}

func NewPresignUploadResponse

func NewPresignUploadResponse(r *http.Request, key string) PresignUploadResponse

type Provider

type Provider struct {
	Storage Storage
}

func (*Provider) MakeDirector

func (p *Provider) MakeDirector(extractKey func(r *http.Request) string) func(r *http.Request)

func (*Provider) PresignPutRequest

func (p *Provider) PresignPutRequest(r *PresignUploadRequest) (*PresignUploadResponse, error)

type S3Storage

type S3Storage struct {
	Bucket          string
	Region          string
	AccessKeyID     string
	SecretAccessKey string
	// contains filtered or unexported fields
}

func NewS3Storage

func NewS3Storage(accessKeyID, secretAccessKey, region, bucket string) (*S3Storage, error)

func (*S3Storage) MakeDirector

func (s *S3Storage) MakeDirector(extractKey func(r *http.Request) string) func(r *http.Request)

func (*S3Storage) PresignHeadObject

func (s *S3Storage) PresignHeadObject(name string) (*url.URL, error)

func (*S3Storage) PresignPutObject

func (s *S3Storage) PresignPutObject(name string, header http.Header) (*http.Request, error)

type Storage

type Storage interface {
	// PresignPutObject returns an HTTP request that is ready for use.
	PresignPutObject(name string, header http.Header) (*http.Request, error)
	// PresignHeadObject returns an URL that is ready for use.
	PresignHeadObject(name string) (*url.URL, error)
	// MakeDirector takes extractKey and returns a Director of httputil.ReverseProxy.
	MakeDirector(extractKey func(r *http.Request) string) func(r *http.Request)
}

Jump to

Keyboard shortcuts

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