Versions in this module Expand all Collapse all v0 v0.0.4 Jan 11, 2025 Changes in this version type ListBucketResultBase + EncodingType string v0.0.3 Oct 25, 2024 Changes in this version + const DefaultBucketVersionKeys + const DefaultMaxBucketKeys + const DefaultMaxBucketVersionKeys + const DefaultMaxUploadParts + const DefaultMaxUploads + const DefaultMetadataSizeLimit + const DefaultSkewLimit + const DefaultUploadPartSize + const KeySizeLimit + const MaxBucketKeys + const MaxBucketVersionKeys + const MaxUploadPartNumber + const MaxUploadPartsLimit + const MaxUploadsLimit + const RangeNoEnd + func BucketNotFound(bucket string) error + func CheckClose(c io.Closer, err *error) + func ErrorInvalidArgument(name, value, message string) error + func ErrorMessage(code ErrorCode, message string) error + func ErrorMessagef(code ErrorCode, message string, args ...interface{}) error + func HasErrorCode(err error, code ErrorCode) bool + func IsAlreadyExists(err error) bool + func KeyNotFound(key string) error + func MergeMetadata(ctx context.Context, db Backend, bucketName string, objectName string, ...) error + func ReadAll(r io.Reader, size int64) (b []byte, err error) + func ResourceError(code ErrorCode, resource string) error + func URLEncode(s string) string + func ValidateBucketName(name string) error + type Backend interface + BucketExists func(ctx context.Context, name string) (exists bool, err error) + CopyObject func(ctx context.Context, srcBucket, srcKey, dstBucket, dstKey string, ...) (CopyObjectResult, error) + CreateBucket func(ctx context.Context, name string) error + DeleteBucket func(ctx context.Context, name string) error + DeleteMulti func(ctx context.Context, bucketName string, objects ...string) (MultiDeleteResult, error) + DeleteObject func(ctx context.Context, bucketName, objectName string) (ObjectDeleteResult, error) + GetObject func(ctx context.Context, bucketName, objectName string, ...) (*Object, error) + HeadObject func(ctx context.Context, bucketName, objectName string) (*Object, error) + ListBucket func(ctx context.Context, name string, prefix *Prefix, page ListBucketPage) (*ObjectList, error) + ListBuckets func(ctx context.Context) ([]BucketInfo, error) + PutObject func(ctx context.Context, bucketName, key string, meta map[string]string, ...) (PutObjectResult, error) + type BucketInfo struct + CreationDate ContentTime + Name string + type Buckets []BucketInfo + func (b Buckets) Names() []string + type CommonPrefix struct + Prefix string + type CompleteMultipartUploadRequest struct + Parts []CompletedPart + type CompleteMultipartUploadResult struct + Bucket string + ETag string + Key string + Location string + type CompletedPart struct + ETag string + PartNumber int + type Content struct + ETag string + Key string + LastModified ContentTime + Owner *UserInfo + Size int64 + StorageClass StorageClass + type ContentTime struct + func NewContentTime(t time.Time) ContentTime + func (c ContentTime) MarshalXML(e *xml.Encoder, start xml.StartElement) error + type CopyObjectResult struct + ETag string + LastModified ContentTime + XMLName xml.Name + type DeleteMarker struct + IsLatest bool + Key string + LastModified ContentTime + Owner *UserInfo + VersionID VersionID + XMLName xml.Name + func (d DeleteMarker) GetVersionID() VersionID + type DeleteRequest struct + Objects []ObjectID + Quiet bool + type Error interface + ErrorCode func() ErrorCode + type ErrorCode string + const ErrBadDigest + const ErrBucketAlreadyExists + const ErrBucketNotEmpty + const ErrIllegalVersioningConfiguration + const ErrIncompleteBody + const ErrIncorrectNumberOfFilesInPostRequest + const ErrInlineDataTooLarge + const ErrInternal + const ErrInvalidArgument + const ErrInvalidBucketName + const ErrInvalidDigest + const ErrInvalidPart + const ErrInvalidPartOrder + const ErrInvalidRange + const ErrInvalidToken + const ErrInvalidURI + const ErrKeyTooLong + const ErrMalformedPOSTRequest + const ErrMalformedXML + const ErrMetadataTooLarge + const ErrMethodNotAllowed + const ErrMissingContentLength + const ErrNoSuchBucket + const ErrNoSuchKey + const ErrNoSuchUpload + const ErrNoSuchVersion + const ErrNone + const ErrNotImplemented + const ErrNotModified + const ErrRequestTimeTooSkewed + const ErrTooManyBuckets + func (e ErrorCode) Error() string + func (e ErrorCode) ErrorCode() ErrorCode + func (e ErrorCode) Message() string + func (e ErrorCode) Status() int + type ErrorInvalidArgumentResponse struct + ArgumentName string + ArgumentValue string + type ErrorResponse struct + Code ErrorCode + HostID string + Message string + RequestID string + XMLName xml.Name + func (e *ErrorResponse) Error() string + func (e *ErrorResponse) ErrorCode() ErrorCode + type ErrorResult struct + Code ErrorCode + Key string + Message string + RequestID string + Resource string + XMLName xml.Name + func ErrorResultFromError(err error) ErrorResult + func (er ErrorResult) String() string + type GetBucketLocation struct + LocationConstraint string + XMLName xml.Name + Xmlns string + type GoFakeS3 struct + func New(backend Backend, options ...Option) *GoFakeS3 + func (g *GoFakeS3) AddAuthKeys(p map[string]string) + func (g *GoFakeS3) DelAuthKeys(p []string) + func (g *GoFakeS3) Server() http.Handler + type InitiateMultipartUpload struct + Bucket string + Key string + UploadID UploadID + type InternalErrorCode string + const ErrInternalPageNotImplemented + func (e InternalErrorCode) Error() string + func (e InternalErrorCode) ErrorCode() ErrorCode + type ListBucketPage struct + HasMarker bool + Marker string + MaxKeys int64 + func (p ListBucketPage) IsEmpty() bool + type ListBucketResult struct + Marker string + NextMarker string + type ListBucketResultBase struct + CommonPrefixes []CommonPrefix + Contents []*Content + Delimiter string + IsTruncated bool + MaxKeys int64 + Name string + Prefix string + XMLName xml.Name + Xmlns string + type ListBucketResultV2 struct + ContinuationToken string + EncodingType string + KeyCount int64 + NextContinuationToken string + StartAfter string + type ListBucketVersionsPage struct + HasKeyMarker bool + HasVersionIDMarker bool + KeyMarker string + MaxKeys int64 + VersionIDMarker VersionID + type ListBucketVersionsResult struct + CommonPrefixes []CommonPrefix + Delimiter string + IsTruncated bool + KeyMarker string + MaxKeys int64 + Name string + NextKeyMarker string + NextVersionIDMarker VersionID + Prefix string + VersionIDMarker VersionID + Versions []VersionItem + XMLName xml.Name + Xmlns string + func NewListBucketVersionsResult(bucketName string, prefix *Prefix, page *ListBucketVersionsPage) *ListBucketVersionsResult + func (b *ListBucketVersionsResult) AddPrefix(prefix string) + type ListMultipartUploadItem struct + Initiated ContentTime + Initiator *UserInfo + Key string + Owner *UserInfo + StorageClass StorageClass + UploadID UploadID + type ListMultipartUploadPartItem struct + ETag string + LastModified ContentTime + PartNumber int + Size int64 + type ListMultipartUploadPartsResult struct + Bucket string + Initiator *UserInfo + IsTruncated bool + Key string + MaxParts int64 + NextPartNumberMarker int + Owner *UserInfo + PartNumberMarker int + Parts []ListMultipartUploadPartItem + StorageClass StorageClass + UploadID UploadID + XMLName xml.Name + type ListMultipartUploadsResult struct + Bucket string + CommonPrefixes []CommonPrefix + Delimiter string + IsTruncated bool + KeyMarker string + MaxUploads int64 + NextKeyMarker string + NextUploadIDMarker UploadID + Prefix string + UploadIDMarker UploadID + Uploads []ListMultipartUploadItem + type LogLevel string + const LogErr + const LogInfo + const LogWarn + type Logger interface + Print func(level LogLevel, v ...interface{}) + func DiscardLog() Logger + func GlobalLog(levels ...LogLevel) Logger + func MultiLog(loggers ...Logger) Logger + func StdLog(log *log.Logger, levels ...LogLevel) Logger + type MFADeleteStatus string + const MFADeleteDisabled + const MFADeleteEnabled + const MFADeleteNone + func (v *MFADeleteStatus) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error + func (v MFADeleteStatus) Enabled() bool + type MultiDeleteResult struct + Deleted []ObjectID + Error []ErrorResult + XMLName xml.Name + func (d MultiDeleteResult) AsError() error + type Object struct + Contents io.ReadCloser + Hash []byte + IsDeleteMarker bool + Metadata map[string]string + Name string + Range *ObjectRange + Size int64 + VersionID VersionID + type ObjectDeleteResult struct + IsDeleteMarker bool + VersionID VersionID + type ObjectID struct + Key string + VersionID string + type ObjectList struct + CommonPrefixes []CommonPrefix + Contents []*Content + IsTruncated bool + NextMarker string + func NewObjectList() *ObjectList + func (b *ObjectList) Add(item *Content) + func (b *ObjectList) AddPrefix(prefix string) + type ObjectRange struct + Length int64 + Start int64 + type ObjectRangeRequest struct + End int64 + FromEnd bool + Start int64 + func (o *ObjectRangeRequest) Range(size int64) (*ObjectRange, error) + type Option func(g *GoFakeS3) + func WithAutoBucket(enabled bool) Option + func WithGlobalLog() Option + func WithHostBucket(enabled bool) Option + func WithIntegrityCheck(check bool) Option + func WithLogger(logger Logger) Option + func WithMetadataSizeLimit(size int) Option + func WithRequestID(id uint64) Option + func WithTimeSkewLimit(skew time.Duration) Option + func WithTimeSource(timeSource TimeSource) Option + func WithUnimplementedPageError() Option + func WithV4Auth(authPair map[string]string) Option + func WithoutVersioning() Option + type Prefix struct + Delimiter string + HasDelimiter bool + HasPrefix bool + Prefix string + func NewFolderPrefix(prefix string) (p Prefix) + func NewPrefix(prefix, delim *string) (p Prefix) + func (p Prefix) FilePrefix() (path, remaining string, ok bool) + func (p Prefix) Match(key string, match *PrefixMatch) (ok bool) + func (p Prefix) String() string + type PrefixMatch struct + CommonPrefix bool + Key string + MatchedPart string + func (match *PrefixMatch) AsCommonPrefix() CommonPrefix + type PutObjectResult struct + VersionID VersionID + type Storage struct + Buckets Buckets + Owner *UserInfo + XMLName xml.Name + Xmlns string + type StorageClass string + const StorageStandard + func (s StorageClass) MarshalXML(e *xml.Encoder, start xml.StartElement) error + type TimeSource interface + Now func() time.Time + Since func(time.Time) time.Duration + func DefaultTimeSource() TimeSource + type TimeSourceAdvancer interface + Advance func(by time.Duration) + func FixedTimeSource(at time.Time) TimeSourceAdvancer + type UploadID string + type UploadListMarker struct + Object string + UploadID UploadID + type UserInfo struct + DisplayName string + ID string + type Version struct + ETag string + IsLatest bool + Key string + LastModified ContentTime + Owner *UserInfo + Size int64 + StorageClass StorageClass + VersionID VersionID + XMLName xml.Name + func (v Version) GetVersionID() VersionID + type VersionID string + type VersionItem interface + GetVersionID func() VersionID + type VersionedBackend interface + DeleteObjectVersion func(bucketName, objectName string, versionID VersionID) (ObjectDeleteResult, error) + GetObjectVersion func(bucketName, objectName string, versionID VersionID, ...) (*Object, error) + HeadObjectVersion func(bucketName, objectName string, versionID VersionID) (*Object, error) + ListBucketVersions func(bucketName string, prefix *Prefix, page *ListBucketVersionsPage) (*ListBucketVersionsResult, error) + SetVersioningConfiguration func(bucket string, v VersioningConfiguration) error + VersioningConfiguration func(bucket string) (VersioningConfiguration, error) + type VersioningConfiguration struct + MFADelete MFADeleteStatus + Status VersioningStatus + XMLName xml.Name + func (v *VersioningConfiguration) Enabled() bool + func (v *VersioningConfiguration) SetEnabled(enabled bool) + type VersioningStatus string + const VersioningEnabled + const VersioningNone + const VersioningSuspended + func (v *VersioningStatus) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error