ReadonlynameContainer / bucket name
Coerce a single data value into a form that can safely be passed to the datasource as a
bind parameter (as opposed to printCellAsValue, which formats it as an inline SQL literal).
The default implementation returns the value unchanged. SQL datasources override this to
apply driver-specific coercions (e.g. converting Date/boolean for drivers that only
accept primitive bind types). Non-SQL datasources (blob, nosql) can ignore it.
data value to bind
native type name for the table column
Initialise the AWS SDK S3 client from the JSON-encoded connectionStr.
Does not perform any network call.
Delete a named object.
full object key (path within the bucket)
Release the S3 client (destroys the underlying HTTP connection pool).
Download the raw content of a named object.
full object key (path within the bucket)
Attach a static OINOBlobDataModel to the given API, adding only the
four fields that S3 object listings return (contentType is omitted
because S3 does not include it in listing responses).
the OINOBlobApi whose data model is to be initialised
List all objects in the bucket, applying a server-side S3 Prefix filter
where possible and in-memory result filtering for all other predicates.
name field supports server-side prefix filtering via ListObjectsV2
Prefix option (query filtering).etag, lastModified, contentLength,
contentType) are evaluated in-memory after the listing (result filtering).
Note: S3 listing does not return contentType; it defaults to
"application/octet-stream" unless a contentType filter is applied.Optionalfilter: OINOQueryFilteroptional query filter to apply
Parse a single SQL result value for serialization using the context of the native data type.
native type name for table column
Print a single data value from serialization using the context of the native data type with the correct SQL escaping.
data from sql results
Print a column name with correct datasource specific formatting.
name of the column
Print a single string value as valid sql literal
Replace characters that are unsafe in S3 object key names
(\, control characters, and shell/URL-special characters
{, }, [, ], ^, `, |, <, >, #, %) with _.
Upload (create or replace) an object with the given binary content.
full object key (path within the bucket)
binary content to store
MIME type of the content (e.g. "image/jpeg")
Verify that the target bucket exists and is accessible using a HeadBucket call.
Abstract base class for blob storage backends. Subclasses implement the two core operations (
listEntriesandfetchEntry) for a specific provider (e.g. Azure Blob Storage, S3, …).The SQL-formatting methods inherited from
OINODataSourceare not used by blob operations; they are implemented here as passthrough stubs so that the blob datasource can still be composed withOINODataField.