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.
get_blob_range
Returns a stream for the requested zero-based offset and positive length, or undef when the object is absent. Only the requested S3 byte ranges are fetched. When size is supplied, a size mismatch is an error.
delete_blob
Deletes an object and reports whether it existed.