package s3
import "golazy.dev/lazystorage/s3"
Types
type Option
Option configures Storage.
type Option func(*Storage)
func WithBucket
WithBucket sets the bucket name.
func WithBucket(bucket string) Option
func WithCredentials
WithCredentials sets the access key pair used for signed S3 requests.
func WithCredentials(accessKeyID, secretAccessKey string) Option
func WithEndpoint
WithEndpoint sets the S3 API endpoint.
func WithEndpoint(endpoint string) Option
func WithHTTPClient
WithHTTPClient sets the HTTP client used for S3 requests.
func WithHTTPClient(client *http.Client) Option
func WithPublicBaseURL
WithPublicBaseURL sets the URL prefix returned by URL.
For SeaweedFS deployments this is usually an ingress path that rewrites to the filer, for example https://example.com/assets.
func WithPublicBaseURL(baseURL string) Option
func WithRegion
WithRegion sets the SigV4 region. S3-compatible stores commonly accept us-east-1 even when they are not hosted in AWS.
func WithRegion(region string) Option
func WithSessionToken
WithSessionToken sets the optional session token for temporary credentials.
func WithSessionToken(token string) Option
type Storage
Storage stores objects in an S3-compatible bucket.
type Storage struct {
// contains filtered or unexported fields
}
func New
New creates an S3-compatible storage.
func New(options ...Option) *Storage
func (s *Storage) Delete
Delete removes key.
func (s *Storage) Delete(ctx context.Context, key string, options ...any) ([]any, error)
func (s *Storage) EnsureBucket
EnsureBucket creates the configured bucket if it does not already exist.
func (s *Storage) EnsureBucket(ctx context.Context) error
func (s *Storage) List
List lists object metadata below prefix.
func (s *Storage) List(ctx context.Context, prefix string, options ...any) (lazystorage.Iterator, []any, error)
func (s *Storage) Open
Open opens key for reading.
func (s *Storage) Open(ctx context.Context, key string, options ...any) (lazystorage.File, []any, error)
func (s *Storage) Put
Put writes key to the bucket.
func (s *Storage) Put(ctx context.Context, key string, body io.Reader, options ...any) (lazystorage.Info, []any, error)
func (s *Storage) URL
URL returns the configured public mount URL for key.
func (s *Storage) URL(ctx context.Context, key string, options ...any) (lazystorage.URL, []any, error)
func (s *Storage) Watch
Watch polls the bucket and emits put/delete events for key changes.
func (s *Storage) Watch(ctx context.Context, prefix string, options ...any) (lazystorage.Events, []any, error)
Package s3 provides an S3-compatible lazystorage backend.