NAME

Net::Blossom::Server::Backend::S3::BlobStore - S3-compatible Blossom blob bytes

DESCRIPTION

This module implements Net::Blossom::Server::BlobStore with an S3-compatible object service. It is normally constructed by Net::Blossom::Server::Backend::S3.

Uploads use local temporary files and generation-specific object keys. Downloads are returned as bounded range streams. A read may return fewer bytes than requested so memory remains bounded by the configured range size.

CONSTRUCTOR

new

Accepts the S3 connection, staging, multipart, and range options documented by "new" in Net::Blossom::Server::Backend::S3.

client may provide a custom object client. It cannot be combined with S3 connection options.

METHODS

BUILDARGS

Normalizes and validates constructor arguments for Class::Tiny.

client

Returns the object client used for S3 requests.

temp_dir

Returns the upload staging directory.

prefix

Returns the object key prefix.

range_size

Returns the ranged-download chunk size in bytes.

multipart_threshold

Returns the configured multipart-upload threshold.

multipart_part_size

Returns the preferred multipart part size.

generation

Returns the callback used to create object-key generation segments.

deploy_schema

Returns true; object storage has no database schema.

begin_upload

Returns a file-backed blob upload writer.

get_blob

Returns '' for an empty object, a ranged stream for a nonempty object, or undef when the object is absent. When size is supplied, a size mismatch is an error.

delete_blob

Deletes an object and reports whether it existed.