| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.101.0/docs/apis/_sources/s3_protocol_0.rst.txt |
.. index:: single: s3_protocol .. _s3_protocol/0:
.. rst-class:: right
protocol
s3_protocolS3-compatible client facade predicates.
| Availability:
| logtalk_load(s3(loader))
| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-07-13
| Compilation flags:
| static
| Dependencies: | (none)
| Remarks: | (none)
| Inherited public predicates: | (none)
.. contents:: :local: :backlinks: top
.. index:: list_buckets/2 .. _s3_protocol/0::list_buckets/2:
list_buckets/2 ^^^^^^^^^^^^^^^^^^
Lists accessible buckets.
| Compilation flags:
| static
| Template:
| list_buckets(Buckets,Options)
| Mode and number of proofs:
| list_buckets(-compound,+list(compound)) - one_or_error
| Exceptions:
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| Credentials are missing or invalid:
| domain_error(s3_credentials,missing)
| The S3 service returned a non-success status or malformed XML body:
| domain_error(s3_http_status,Status)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)).us-east-1.virtual_hosted or path. Defaults to virtual_hosted.http(Major, Minor). Defaults to http(1,1).signed or unsigned. Defaults to signed.date_time(Year, Month, Day, Hours, Minutes, Seconds).0... index:: head_bucket/3 .. _s3_protocol/0::head_bucket/3:
head_bucket/3 ^^^^^^^^^^^^^^^^^
Returns response metadata for a bucket.
| Compilation flags:
| static
| Template:
| head_bucket(Bucket,Metadata,Options)
| Mode and number of proofs:
| head_bucket(+atom,-compound,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| The S3 service returned a non-success status:
| domain_error(s3_http_status,Status)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)), optional session_token(Token), region(Region), optional custom endpoint(URL), addressing_style(virtual_hosted|path), optional headers(Headers), version(http(Major, Minor)), optional properties(Properties), optional connection_options(ConnectionOptions), payload_hash_mode(signed|unsigned), optional request_time(date_time(...)), utc_offset_seconds(OffsetSeconds), and optional explicit amz_date(AmzDate)... index:: list_objects_v2/4 .. _s3_protocol/0::list_objects_v2/4:
list_objects_v2/4 ^^^^^^^^^^^^^^^^^^^^^
Lists bucket objects using the ListObjectsV2 API.
| Compilation flags:
| static
| Template:
| list_objects_v2(Bucket,Request,Listing,Options)
| Mode and number of proofs:
| list_objects_v2(+atom,+compound,-compound,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Request is a variable:
| instantiation_error
| An element Option of the request option list is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| An element Option of the request option list is neither a variable nor a compound term:
| type_error(compound,Option)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| Request is not a valid ListObjectsV2 request term or option list:
| domain_error(s3_list_objects_request,Request)
| An element Option of the request option list is a compound term but not a valid ListObjectsV2 request option:
| domain_error(s3_list_objects_request_option,Option)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| The S3 service returned a non-success status or malformed XML body:
| domain_error(s3_http_status,Status)
| Remarks:
Options accepts the standard S3 request options: credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)), optional session_token(Token), region(Region), optional custom endpoint(URL), addressing_style(virtual_hosted|path), optional headers(Headers), version(http(Major, Minor)), optional properties(Properties), optional connection_options(ConnectionOptions), payload_hash_mode(signed|unsigned), optional request_time(date_time(...)), utc_offset_seconds(OffsetSeconds), and optional explicit amz_date(AmzDate). The Request argument carries the ListObjectsV2-specific request options... index:: head_object/4 .. _s3_protocol/0::head_object/4:
head_object/4 ^^^^^^^^^^^^^^^^^
Returns response metadata for an object.
| Compilation flags:
| static
| Template:
| head_object(Bucket,Key,Metadata,Options)
| Mode and number of proofs:
| head_object(+atom,+atom,-compound,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Key is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Key is neither a variable nor an atom:
| type_error(atom,Key)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| The S3 service returned a non-success status:
| domain_error(s3_http_status,Status)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)), optional session_token(Token), region(Region), optional custom endpoint(URL), addressing_style(virtual_hosted|path), optional headers(Headers), version(http(Major, Minor)), optional properties(Properties), optional connection_options(ConnectionOptions), payload_hash_mode(signed|unsigned), optional request_time(date_time(...)), utc_offset_seconds(OffsetSeconds), and optional explicit amz_date(AmzDate)... index:: get_object/5 .. _s3_protocol/0::get_object/5:
get_object/5 ^^^^^^^^^^^^^^^^
Fetches an object into a local file path and returns its response metadata as a separate argument.
| Compilation flags:
| static
| Template:
| get_object(Bucket,Key,File,Properties,Options)
| Mode and number of proofs:
| get_object(+atom,+atom,+atom,-compound,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Key is a variable:
| instantiation_error
| File is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Key is neither a variable nor an atom:
| type_error(atom,Key)
| File is neither a variable nor an atom:
| type_error(atom,File)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| File exists but is not a writable file:
| domain_error(file([],[write]),File)
| The directory Directory exists but is not writable:
| domain_error(directory([write]),Directory)
| The directory Directory does not exist:
| existence_error(directory,Directory)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| The S3 service returned a non-success status:
| domain_error(s3_http_status,Status)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)) for access credentials; session_token(Token) for temporary credentials; region(Region) for the AWS region, defaulting to us-east-1 when endpoint/1 is absent; endpoint(URL) for a custom S3-compatible endpoint; addressing_style(virtual_hosted|path) for endpoint addressing, defaulting to virtual_hosted; headers(Headers) for extra normalized request headers; version(http(Major, Minor)) for the HTTP protocol version, defaulting to http(1,1); properties(Properties) for extra normalized HTTP request properties; connection_options(ConnectionOptions) for transport-specific HTTP client options; payload_hash_mode(signed|unsigned) for payload signing, defaulting to signed; request_time(date_time(...)) for an explicit local request time; utc_offset_seconds(OffsetSeconds) for deriving UTC from the local clock, defaulting to 0; and amz_date(AmzDate) for an explicit AWS SigV4 timestamp overriding time derivation... index:: put_object/6 .. _s3_protocol/0::put_object/6:
put_object/6 ^^^^^^^^^^^^^^^^
Uploads a local file path and returns the object ETag and response metadata as separate arguments.
| Compilation flags:
| static
| Template:
| put_object(Bucket,Key,File,ETag,Properties,Options)
| Mode and number of proofs:
| put_object(+atom,+atom,+atom,-atom,-compound,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Key is a variable:
| instantiation_error
| File is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Key is neither a variable nor an atom:
| type_error(atom,Key)
| File is neither a variable nor an atom:
| type_error(atom,File)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| File exists but is not a readable file:
| domain_error(file([],[read]),File)
| The file File does not exist:
| existence_error(file,File)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| The S3 service returned a non-success status:
| domain_error(s3_http_status,Status)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)), optional session_token(Token), region(Region), optional custom endpoint(URL), addressing_style(virtual_hosted|path), optional headers(Headers), version(http(Major, Minor)), optional properties(Properties), optional connection_options(ConnectionOptions), payload_hash_mode(signed|unsigned), optional request_time(date_time(...)), utc_offset_seconds(OffsetSeconds), and optional explicit amz_date(AmzDate)... index:: delete_object/4 .. _s3_protocol/0::delete_object/4:
delete_object/4 ^^^^^^^^^^^^^^^^^^^
Deletes an object, returning delete_result(Properties).
| Compilation flags:
| static
| Template:
| delete_object(Bucket,Key,Result,Options)
| Mode and number of proofs:
| delete_object(+atom,+atom,-compound,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Key is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Key is neither a variable nor an atom:
| type_error(atom,Key)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| The S3 service returned a non-success status:
| domain_error(s3_http_status,Status)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)), optional session_token(Token), region(Region), optional custom endpoint(URL), addressing_style(virtual_hosted|path), optional headers(Headers), version(http(Major, Minor)), optional properties(Properties), optional connection_options(ConnectionOptions), payload_hash_mode(signed|unsigned), optional request_time(date_time(...)), utc_offset_seconds(OffsetSeconds), and optional explicit amz_date(AmzDate)... index:: copy_object/5 .. _s3_protocol/0::copy_object/5:
copy_object/5 ^^^^^^^^^^^^^^^^^
Copies an object from a source bucket/key into the destination bucket/key, returning copy_result(ETag, Properties).
| Compilation flags:
| static
| Template:
| copy_object(Source,Bucket,Key,Result,Options)
| Mode and number of proofs:
| copy_object(+compound,+atom,+atom,-compound,+list(compound)) - one_or_error
| Exceptions:
| Source is a variable:
| instantiation_error
| Bucket is a variable:
| instantiation_error
| Key is a variable:
| instantiation_error
| The version identifier in Source is a variable:
| instantiation_error
| Source is neither a variable nor a compound term:
| type_error(compound,Source)
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Key is neither a variable nor an atom:
| type_error(atom,Key)
| The version identifier in Source is neither a variable nor an atom:
| type_error(atom,VersionId)
| Source is a compound term but not a valid copy source term:
| domain_error(s3_copy_source,Source)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| The version identifier in Source is an atom but not a valid version identifier:
| domain_error(s3_version_id,VersionId)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| The S3 service returned a non-success status or malformed XML body:
| domain_error(s3_http_status,Status)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)), optional session_token(Token), region(Region), optional custom endpoint(URL), addressing_style(virtual_hosted|path), optional headers(Headers), version(http(Major, Minor)), optional properties(Properties), optional connection_options(ConnectionOptions), payload_hash_mode(signed|unsigned), optional request_time(date_time(...)), utc_offset_seconds(OffsetSeconds), and optional explicit amz_date(AmzDate)... index:: presigned_get_object/4 .. _s3_protocol/0::presigned_get_object/4:
presigned_get_object/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates a presigned URL for downloading an object with an external HTTP client.
| Compilation flags:
| static
| Template:
| presigned_get_object(Bucket,Key,URL,Options)
| Mode and number of proofs:
| presigned_get_object(+atom,+atom,-atom,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Key is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Key is neither a variable nor an atom:
| type_error(atom,Key)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| Credentials are missing or invalid:
| domain_error(s3_credentials,missing)
| The expiration is invalid or outside the AWS SigV4 range:
| domain_error(s3_presign_expires,Expires)
| The payload hash is missing, invalid, or incompatible with unsigned mode:
| domain_error(s3_presign_payload_hash,Hash)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)).us-east-1.virtual_hosted or path. Defaults to virtual_hosted.payload_hash_mode(unsigned). Use signed together with payload_hash/1 to sign a precomputed payload hash.payload_hash_mode(signed) is selected.date_time(Year, Month, Day, Hours, Minutes, Seconds).0.900 and must not exceed 604800... index:: presigned_put_object/4 .. _s3_protocol/0::presigned_put_object/4:
presigned_put_object/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates a presigned URL for uploading an object with an external HTTP client.
| Compilation flags:
| static
| Template:
| presigned_put_object(Bucket,Key,URL,Options)
| Mode and number of proofs:
| presigned_put_object(+atom,+atom,-atom,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Key is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Key is neither a variable nor an atom:
| type_error(atom,Key)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| Credentials are missing or invalid:
| domain_error(s3_credentials,missing)
| The expiration is invalid or outside the AWS SigV4 range:
| domain_error(s3_presign_expires,Expires)
| The payload hash is missing, invalid, or incompatible with unsigned mode:
| domain_error(s3_presign_payload_hash,Hash)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)).us-east-1.virtual_hosted or path. Defaults to virtual_hosted.payload_hash_mode(unsigned). Use signed together with payload_hash/1 to sign a precomputed payload hash.payload_hash_mode(signed) is selected.date_time(Year, Month, Day, Hours, Minutes, Seconds).0.900 and must not exceed 604800... index:: presigned_post_object/4 .. _s3_protocol/0::presigned_post_object/4:
presigned_post_object/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates a presigned URL for a POST request to an object with an external HTTP client.
| Compilation flags:
| static
| Template:
| presigned_post_object(Bucket,Key,URL,Options)
| Mode and number of proofs:
| presigned_post_object(+atom,+atom,-atom,+list(compound)) - one_or_error
| Exceptions:
| Bucket is a variable:
| instantiation_error
| Key is a variable:
| instantiation_error
| Bucket is neither a variable nor an atom:
| type_error(atom,Bucket)
| Key is neither a variable nor an atom:
| type_error(atom,Key)
| Bucket is an atom but not a valid S3 bucket:
| domain_error(s3_bucket,Bucket)
| Options is a variable:
| instantiation_error
| Options is neither a variable nor a list:
| type_error(list,Options)
| An element Option of the list Options is a variable:
| instantiation_error
| An element Option of the list Options is neither a variable nor a compound term:
| type_error(compound,Option)
| An element Option of the list Options is a compound term but not a valid option:
| domain_error(option,Option)
| Options contains an invalid S3 client option:
| domain_error(s3_client_option,Option)
| Credentials are missing or invalid:
| domain_error(s3_credentials,missing)
| The expiration is invalid or outside the AWS SigV4 range:
| domain_error(s3_presign_expires,Expires)
| The payload hash is missing, invalid, or incompatible with unsigned mode:
| domain_error(s3_presign_payload_hash,Hash)
| Remarks:
credentials(access_key_id(AccessKeyId), secret_access_key(SecretAccessKey)).us-east-1.virtual_hosted or path. Defaults to virtual_hosted.payload_hash_mode(unsigned). Use signed together with payload_hash/1 to sign a precomputed payload hash.payload_hash_mode(signed) is selected.date_time(Year, Month, Day, Hours, Minutes, Seconds).0.900 and must not exceed 604800.(none)
(none)
(none)