Table of Contents
A low-level client representing Amazon Simple Storage Service (S3):
import boto3
client = boto3.client('s3')
These are the available methods:
Aborts a multipart upload.
To verify that all parts have been removed, so you don't get charged for the part storage, you should call the List Parts operation and ensure the parts list is empty.
See also: AWS API Documentation
Request Syntax
response = client.abort_multipart_upload(
Bucket='string',
Key='string',
UploadId='string',
RequestPayer='requester'
)
[REQUIRED]
Name of the bucket to which the multipart upload was initiated.
[REQUIRED]
Key of the object for which the multipart upload was initiated.
[REQUIRED]
Upload ID that identifies the multipart upload.
dict
Response Syntax
{
'RequestCharged': 'requester'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Check if an operation can be paginated.
Completes a multipart upload by assembling previously uploaded parts.
See also: AWS API Documentation
Request Syntax
response = client.complete_multipart_upload(
Bucket='string',
Key='string',
MultipartUpload={
'Parts': [
{
'ETag': 'string',
'PartNumber': 123
},
]
},
UploadId='string',
RequestPayer='requester'
)
Entity tag returned when the part was uploaded.
Part number that identifies the part. This is a positive integer between 1 and 10,000.
dict
Response Syntax
{
'Location': 'string',
'Bucket': 'string',
'Key': 'string',
'Expiration': 'string',
'ETag': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'VersionId': 'string',
'SSEKMSKeyId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
Location (string) --
Bucket (string) --
Key (string) --
Expiration (string) --
If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.
ETag (string) --
Entity tag of the object.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
VersionId (string) --
Version of the object.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Copy an object from one S3 location to another.
This is a managed transfer which will perform a multipart copy in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.resource('s3')
copy_source = {
'Bucket': 'mybucket',
'Key': 'mykey'
}
s3.meta.client.copy(copy_source, 'otherbucket', 'otherkey')
Creates a copy of an object that is already stored in Amazon S3.
See also: AWS API Documentation
Request Syntax
response = client.copy_object(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
Bucket='string',
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentType='string',
CopySource='string' or {'Bucket': 'string', 'Key': 'string', 'VersionId': 'string'},
CopySourceIfMatch='string',
CopySourceIfModifiedSince=datetime(2015, 1, 1),
CopySourceIfNoneMatch='string',
CopySourceIfUnmodifiedSince=datetime(2015, 1, 1),
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Key='string',
Metadata={
'string': 'string'
},
MetadataDirective='COPY'|'REPLACE',
TaggingDirective='COPY'|'REPLACE',
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
CopySourceSSECustomerAlgorithm='string',
CopySourceSSECustomerKey='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'CopyObjectResult': {
'ETag': 'string',
'LastModified': datetime(2015, 1, 1)
},
'Expiration': 'string',
'CopySourceVersionId': 'string',
'VersionId': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'SSEKMSEncryptionContext': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
CopyObjectResult (dict) --
Expiration (string) --
If the object expiration is configured, the response includes this header.
CopySourceVersionId (string) --
VersionId (string) --
Version ID of the newly created copy.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
SSEKMSEncryptionContext (string) --
If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Creates a new bucket.
See also: AWS API Documentation
Request Syntax
response = client.create_bucket(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read',
Bucket='string',
CreateBucketConfiguration={
'LocationConstraint': 'EU'|'eu-west-1'|'us-west-1'|'us-west-2'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'sa-east-1'|'cn-north-1'|'eu-central-1'
},
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWrite='string',
GrantWriteACP='string',
ObjectLockEnabledForBucket=True|False
)
Specifies the region where the bucket will be created. If you don't specify a region, the bucket is created in US East (N. Virginia) Region (us-east-1).
dict
Response Syntax
{
'Location': 'string'
}
Response Structure
Initiates a multipart upload and returns an upload ID.
Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
See also: AWS API Documentation
Request Syntax
response = client.create_multipart_upload(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
Bucket='string',
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentType='string',
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Key='string',
Metadata={
'string': 'string'
},
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'AbortDate': datetime(2015, 1, 1),
'AbortRuleId': 'string',
'Bucket': 'string',
'Key': 'string',
'UploadId': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'SSEKMSEncryptionContext': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
AbortDate (datetime) --
Date when multipart upload will become eligible for abort operation by lifecycle.
AbortRuleId (string) --
Id of the lifecycle rule that makes a multipart upload eligible for abort operation.
Bucket (string) --
Name of the bucket to which the multipart upload was initiated.
Key (string) --
Object key for which the multipart upload was initiated.
UploadId (string) --
ID for the initiated multipart upload.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
SSEKMSEncryptionContext (string) --
If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket(
Bucket='string'
)
Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).
To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_analytics_configuration(
Bucket='string',
Id='string'
)
[REQUIRED]
The name of the bucket from which an analytics configuration is deleted.
[REQUIRED]
The ID that identifies the analytics configuration.
None
Deletes the CORS configuration information set for the bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_cors(
Bucket='string'
)
Deletes the server-side encryption configuration from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_encryption(
Bucket='string'
)
[REQUIRED]
The name of the bucket containing the server-side encryption configuration to delete.
Deletes an inventory configuration (identified by the inventory ID) from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_inventory_configuration(
Bucket='string',
Id='string'
)
[REQUIRED]
The name of the bucket containing the inventory configuration to delete.
[REQUIRED]
The ID used to identify the inventory configuration.
None
Deletes the lifecycle configuration from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_lifecycle(
Bucket='string'
)
Deletes a metrics configuration (specified by the metrics configuration ID) from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_metrics_configuration(
Bucket='string',
Id='string'
)
[REQUIRED]
The name of the bucket containing the metrics configuration to delete.
[REQUIRED]
The ID used to identify the metrics configuration.
None
Deletes the policy from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_policy(
Bucket='string'
)
Deletes the replication configuration from the bucket. For information about replication configuration, see Cross-Region Replication (CRR) in the Amazon S3 Developer Guide .
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_replication(
Bucket='string'
)
[REQUIRED]
The bucket name.
Note
It can take a while to propagate the deletion of a replication configuration to all Amazon S3 systems.
Deletes the tags from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_tagging(
Bucket='string'
)
This operation removes the website configuration from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_bucket_website(
Bucket='string'
)
Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.
See also: AWS API Documentation
Request Syntax
response = client.delete_object(
Bucket='string',
Key='string',
MFA='string',
VersionId='string',
RequestPayer='requester',
BypassGovernanceRetention=True|False
)
dict
Response Syntax
{
'DeleteMarker': True|False,
'VersionId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
DeleteMarker (boolean) --
Specifies whether the versioned object that was permanently deleted was (true) or was not (false) a delete marker.
VersionId (string) --
Returns the version ID of the delete marker created as a result of the DELETE operation.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Removes the tag-set from an existing object.
See also: AWS API Documentation
Request Syntax
response = client.delete_object_tagging(
Bucket='string',
Key='string',
VersionId='string'
)
dict
Response Syntax
{
'VersionId': 'string'
}
Response Structure
(dict) --
VersionId (string) --
The versionId of the object the tag-set was removed from.
This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.
See also: AWS API Documentation
Request Syntax
response = client.delete_objects(
Bucket='string',
Delete={
'Objects': [
{
'Key': 'string',
'VersionId': 'string'
},
],
'Quiet': True|False
},
MFA='string',
RequestPayer='requester',
BypassGovernanceRetention=True|False
)
[REQUIRED]
Key name of the object to delete.
VersionId for the specific version of the object to delete.
Element to enable quiet mode for the request. When you add this element, you must set its value to true.
dict
Response Syntax
{
'Deleted': [
{
'Key': 'string',
'VersionId': 'string',
'DeleteMarker': True|False,
'DeleteMarkerVersionId': 'string'
},
],
'RequestCharged': 'requester',
'Errors': [
{
'Key': 'string',
'VersionId': 'string',
'Code': 'string',
'Message': 'string'
},
]
}
Response Structure
(dict) --
Deleted (list) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Errors (list) --
Removes the PublicAccessBlock configuration from an Amazon S3 bucket.
See also: AWS API Documentation
Request Syntax
response = client.delete_public_access_block(
Bucket='string'
)
[REQUIRED]
The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.
Download an S3 object to a file.
Usage:
import boto3
s3 = boto3.resource('s3')
s3.meta.client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt')
Similar behavior as S3Transfer's download_file() method, except that parameters are capitalized. Detailed examples can be found at S3Transfer's Usage.
Download an object from S3 to a file-like object.
The file-like object must be in binary mode.
This is a managed transfer which will perform a multipart download in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.client('s3')
with open('filename', 'wb') as data:
s3.download_fileobj('mybucket', 'mykey', data)
Builds the url and the form fields used for a presigned s3 post
A dictionary of prefilled form fields to build on top of. Elements that may be included are acl, Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires, success_action_redirect, redirect, success_action_status, and x-amz-meta-.
Note that if a particular element is included in the fields dictionary it will not be automatically added to the conditions list. You must specify a condition for the element as well.
A list of conditions to include in the policy. Each element can be either a list or a structure. For example:
]
Conditions that are included may pertain to acl, content-length-range, Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires, success_action_redirect, redirect, success_action_status, and/or x-amz-meta-.
Note that if you include a condition, you must specify the a valid value in the fields dictionary as well. A value will not be added automatically to the fields dictionary based on the conditions.
dict
A dictionary with two elements: url and fields. Url is the url to post to. Fields is a dictionary filled with the form fields and respective values to use when submitting the post. For example:
'key': 'mykey', 'signature': 'mysignature', 'policy': 'mybase64 encoded policy'}
}
Generate a presigned url given a client, its method, and arguments
The presigned url
Returns the accelerate configuration of a bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_accelerate_configuration(
Bucket='string'
)
[REQUIRED]
Name of the bucket for which the accelerate configuration is retrieved.
{
'Status': 'Enabled'|'Suspended'
}
Response Structure
The accelerate configuration of the bucket.
Gets the access control policy for the bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_acl(
Bucket='string'
)
{
'Owner': {
'DisplayName': 'string',
'ID': 'string'
},
'Grants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
]
}
Response Structure
A list of grants.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Specifies the permission given to the grantee.
Gets an analytics configuration for the bucket (specified by the analytics configuration ID).
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_analytics_configuration(
Bucket='string',
Id='string'
)
[REQUIRED]
The name of the bucket from which an analytics configuration is retrieved.
[REQUIRED]
The ID that identifies the analytics configuration.
dict
Response Syntax
{
'AnalyticsConfiguration': {
'Id': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
},
'StorageClassAnalysis': {
'DataExport': {
'OutputSchemaVersion': 'V_1',
'Destination': {
'S3BucketDestination': {
'Format': 'CSV',
'BucketAccountId': 'string',
'Bucket': 'string',
'Prefix': 'string'
}
}
}
}
}
}
Response Structure
(dict) --
AnalyticsConfiguration (dict) --
The configuration and any analyses for the analytics filter.
Id (string) --
The ID that identifies the analytics configuration.
Filter (dict) --
The filter used to describe a set of objects for analyses. A filter must have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be considered in any analysis.
Prefix (string) --
The prefix to use when evaluating an analytics filter.
Tag (dict) --
The tag to use when evaluating an analytics filter.
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
And (dict) --
A conjunction (logical AND) of predicates, which is used in evaluating an analytics filter. The operator must have at least two predicates.
Prefix (string) --
The prefix to use when evaluating an AND predicate: The prefix that an object must have to be included in the metrics results.
Tags (list) --
The list of tags to use when evaluating an AND predicate.
(dict) --
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
StorageClassAnalysis (dict) --
Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes.
DataExport (dict) --
Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.
OutputSchemaVersion (string) --
The version of the output schema to use when exporting data. Must be V_1 .
Destination (dict) --
The place to store the data for an analysis.
S3BucketDestination (dict) --
A destination signifying output to an S3 bucket.
Format (string) --
Specifies the file format used when exporting data to Amazon S3.
BucketAccountId (string) --
The account ID that owns the destination bucket. If no account ID is provided, the owner will not be validated prior to exporting data.
Bucket (string) --
The Amazon Resource Name (ARN) of the bucket to which data is exported.
Prefix (string) --
The prefix to use when exporting data. The prefix is prepended to all results.
Returns the CORS configuration for the bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_cors(
Bucket='string'
)
{
'CORSRules': [
{
'AllowedHeaders': [
'string',
],
'AllowedMethods': [
'string',
],
'AllowedOrigins': [
'string',
],
'ExposeHeaders': [
'string',
],
'MaxAgeSeconds': 123
},
]
}
Response Structure
Specifies a cross-origin access rule for an Amazon S3 bucket.
Headers that are specified in the Access-Control-Request-Headers header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed.
An HTTP method that you allow the origin to execute. Valid values are GET , PUT , HEAD , POST , and DELETE .
One or more origins you want customers to be able to access the bucket from.
One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
The time in seconds that your browser is to cache the preflight response for the specified resource.
Returns the server-side encryption configuration of a bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_encryption(
Bucket='string'
)
[REQUIRED]
The name of the bucket from which the server-side encryption configuration is retrieved.
{
'ServerSideEncryptionConfiguration': {
'Rules': [
{
'ApplyServerSideEncryptionByDefault': {
'SSEAlgorithm': 'AES256'|'aws:kms',
'KMSMasterKeyID': 'string'
}
},
]
}
}
Response Structure
Container for information about a particular server-side encryption configuration rule.
Specifies the default server-side encryption configuration.
Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.
Server-side encryption algorithm to use for the default encryption.
KMS master key ID to use for the default encryption. This parameter is allowed if and only if SSEAlgorithm is set to aws:kms .
Returns an inventory configuration (identified by the inventory ID) from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_inventory_configuration(
Bucket='string',
Id='string'
)
[REQUIRED]
The name of the bucket containing the inventory configuration to retrieve.
[REQUIRED]
The ID used to identify the inventory configuration.
dict
Response Syntax
{
'InventoryConfiguration': {
'Destination': {
'S3BucketDestination': {
'AccountId': 'string',
'Bucket': 'string',
'Format': 'CSV'|'ORC'|'Parquet',
'Prefix': 'string',
'Encryption': {
'SSES3': {},
'SSEKMS': {
'KeyId': 'string'
}
}
}
},
'IsEnabled': True|False,
'Filter': {
'Prefix': 'string'
},
'Id': 'string',
'IncludedObjectVersions': 'All'|'Current',
'OptionalFields': [
'Size'|'LastModifiedDate'|'StorageClass'|'ETag'|'IsMultipartUploaded'|'ReplicationStatus'|'EncryptionStatus'|'ObjectLockRetainUntilDate'|'ObjectLockMode'|'ObjectLockLegalHoldStatus',
],
'Schedule': {
'Frequency': 'Daily'|'Weekly'
}
}
}
Response Structure
(dict) --
InventoryConfiguration (dict) --
Specifies the inventory configuration.
Destination (dict) --
Contains information about where to publish the inventory results.
S3BucketDestination (dict) --
Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.
AccountId (string) --
The ID of the account that owns the destination bucket.
Bucket (string) --
The Amazon resource name (ARN) of the bucket where inventory results will be published.
Format (string) --
Specifies the output format of the inventory results.
Prefix (string) --
The prefix that is prepended to all inventory results.
Encryption (dict) --
Contains the type of server-side encryption used to encrypt the inventory results.
SSES3 (dict) --
Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
SSEKMS (dict) --
Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
KeyId (string) --
Specifies the ID of the AWS Key Management Service (KMS) master encryption key to use for encrypting Inventory reports.
IsEnabled (boolean) --
Specifies whether the inventory is enabled or disabled. If set to True , an inventory list is generated. If set to False , no inventory list is generated.
Filter (dict) --
Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.
Prefix (string) --
The prefix that an object must have to be included in the inventory results.
Id (string) --
The ID used to identify the inventory configuration.
IncludedObjectVersions (string) --
Object versions to include in the inventory list. If set to All , the list includes all the object versions, which adds the version-related fields VersionId , IsLatest , and DeleteMarker to the list. If set to Current , the list does not contain these version-related fields.
OptionalFields (list) --
Contains the optional fields that are included in the inventory results.
Schedule (dict) --
Specifies the schedule for generating inventory results.
Frequency (string) --
Specifies how frequently inventory results are produced.
No longer used, see the GetBucketLifecycleConfiguration operation.
Danger
This operation is deprecated and may not function as expected. This operation should not be used going forward and is only kept for the purpose of backwards compatiblity.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_lifecycle(
Bucket='string'
)
{
'Rules': [
{
'Expiration': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'ExpiredObjectDeleteMarker': True|False
},
'ID': 'string',
'Prefix': 'string',
'Status': 'Enabled'|'Disabled',
'Transition': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
'NoncurrentVersionTransition': {
'NoncurrentDays': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
'NoncurrentVersionExpiration': {
'NoncurrentDays': 123
},
'AbortIncompleteMultipartUpload': {
'DaysAfterInitiation': 123
}
},
]
}
Response Structure
Specifies lifecycle rules for an Amazon S3 bucket. For more information, see PUT Bucket lifecycle in the Amazon Simple Storage Service API Reference .
Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
Unique identifier for the rule. The value can't be longer than 255 characters.
Object key prefix that identifies one or more objects to which this rule applies.
If Enabled , the rule is currently being applied. If Disabled , the rule is not currently being applied.
Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
The storage class to which you want the object to transition.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide .
The class of storage used to store the object.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
Returns the lifecycle configuration information set on the bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_lifecycle_configuration(
Bucket='string'
)
{
'Rules': [
{
'Expiration': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'ExpiredObjectDeleteMarker': True|False
},
'ID': 'string',
'Prefix': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
},
'Status': 'Enabled'|'Disabled',
'Transitions': [
{
'Date': datetime(2015, 1, 1),
'Days': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
],
'NoncurrentVersionTransitions': [
{
'NoncurrentDays': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
],
'NoncurrentVersionExpiration': {
'NoncurrentDays': 123
},
'AbortIncompleteMultipartUpload': {
'DaysAfterInitiation': 123
}
},
]
}
Response Structure
Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
Unique identifier for the rule. The value cannot be longer than 255 characters.
Prefix identifying one or more objects to which the rule applies. This is No longer used; use Filter instead.
Prefix identifying one or more objects to which the rule applies.
This tag must exist in the object's tag set in order for the rule to apply.
Name of the tag.
Value of the tag.
All of these tags must exist in the object's tag set in order for the rule to apply.
Name of the tag.
Value of the tag.
If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.
Specifies when an object transitions to a specified storage class.
Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
The storage class to which you want the object to transition.
Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA , ONEZONE_IA , INTELLIGENT_TIERING , GLACIER , or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA , ONEZONE_IA , INTELLIGENT_TIERING , GLACIER , or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide .
The class of storage used to store the object.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
Returns the region the bucket resides in.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_location(
Bucket='string'
)
{
'LocationConstraint': 'EU'|'eu-west-1'|'us-west-1'|'us-west-2'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'sa-east-1'|'cn-north-1'|'eu-central-1'
}
Response Structure
Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_logging(
Bucket='string'
)
{
'LoggingEnabled': {
'TargetBucket': 'string',
'TargetGrants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'READ'|'WRITE'
},
],
'TargetPrefix': 'string'
}
}
Response Structure
Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Logging permissions assigned to the Grantee for the bucket.
A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket.
Gets a metrics configuration (specified by the metrics configuration ID) from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_metrics_configuration(
Bucket='string',
Id='string'
)
[REQUIRED]
The name of the bucket containing the metrics configuration to retrieve.
[REQUIRED]
The ID used to identify the metrics configuration.
dict
Response Syntax
{
'MetricsConfiguration': {
'Id': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
}
}
}
Response Structure
(dict) --
MetricsConfiguration (dict) --
Specifies the metrics configuration.
Id (string) --
The ID used to identify the metrics configuration.
Filter (dict) --
Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator).
Prefix (string) --
The prefix used when evaluating a metrics filter.
Tag (dict) --
The tag used when evaluating a metrics filter.
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
And (dict) --
A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The operator must have at least two predicates, and an object must match all of the predicates in order for the filter to apply.
Prefix (string) --
The prefix used when evaluating an AND predicate.
Tags (list) --
The list of tags used when evaluating an AND predicate.
(dict) --
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
No longer used, see the GetBucketNotificationConfiguration operation.
Danger
This operation is deprecated and may not function as expected. This operation should not be used going forward and is only kept for the purpose of backwards compatiblity.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_notification(
Bucket='string'
)
[REQUIRED]
Name of the bucket to get the notification configuration for.
{
'TopicConfiguration': {
'Id': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Event': 's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
'Topic': 'string'
},
'QueueConfiguration': {
'Id': 'string',
'Event': 's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Queue': 'string'
},
'CloudFunctionConfiguration': {
'Id': 'string',
'Event': 's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'CloudFunction': 'string',
'InvocationRole': 'string'
}
}
Response Structure
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The bucket event for which to send notifications.
Bucket event for which to send notifications.
Amazon SNS topic to which Amazon S3 will publish a message to report the specified events for the bucket.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The bucket event for which to send notifications.
The bucket event for which to send notifications.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The bucket event for which to send notifications.
The bucket event for which to send notifications.
Returns the notification configuration of a bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_notification_configuration(
Bucket='string'
)
[REQUIRED]
Name of the bucket to get the notification configuration for.
{
'TopicConfigurations': [
{
'Id': 'string',
'TopicArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
],
'QueueConfigurations': [
{
'Id': 'string',
'QueueArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
],
'LambdaFunctionConfigurations': [
{
'Id': 'string',
'LambdaFunctionArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
]
}
Response Structure
A container for specifying the notification configuration of the bucket. If this element is empty, notifications are turned off for the bucket.
The topic to which notifications are sent and the events for which notifications are generated.
A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.
The Amazon S3 bucket event about which to send notifications. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide .
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.
Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
Describes the AWS Lambda functions to invoke and the events for which to invoke them.
A container for specifying the configuration for AWS Lambda notifications.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.
The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide .
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
Returns the policy of a specified bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_policy(
Bucket='string'
)
{
'Policy': 'string'
}
Response Structure
The bucket policy as a JSON document.
Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_policy_status(
Bucket='string'
)
[REQUIRED]
The name of the Amazon S3 bucket whose policy status you want to retrieve.
{
'PolicyStatus': {
'IsPublic': True|False
}
}
Response Structure
The policy status for the specified bucket.
The policy status for this bucket. TRUE indicates that this bucket is public. FALSE indicates that the bucket is not public.
Returns the replication configuration of a bucket.
Note
It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_replication(
Bucket='string'
)
{
'ReplicationConfiguration': {
'Role': 'string',
'Rules': [
{
'ID': 'string',
'Priority': 123,
'Prefix': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
},
'Status': 'Enabled'|'Disabled',
'SourceSelectionCriteria': {
'SseKmsEncryptedObjects': {
'Status': 'Enabled'|'Disabled'
}
},
'Destination': {
'Bucket': 'string',
'Account': 'string',
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'AccessControlTranslation': {
'Owner': 'Destination'
},
'EncryptionConfiguration': {
'ReplicaKmsKeyID': 'string'
}
},
'DeleteMarkerReplication': {
'Status': 'Enabled'|'Disabled'
}
},
]
}
}
Response Structure
The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects. For more information, see How to Set Up Cross-Region Replication in the Amazon Simple Storage Service Developer Guide .
A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules.
Specifies which Amazon S3 objects to replicate and where to store the replicas.
A unique identifier for the rule. The maximum value is 255 characters.
The priority associated with the rule. If you specify multiple rules in a replication configuration, Amazon S3 prioritizes the rules to prevent conflicts when filtering. If two or more rules identify the same object based on a specified filter, the rule with higher priority takes precedence. For example:
For more information, see Cross-Region Replication (CRR) in the Amazon S3 Developer Guide .
An object keyname prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string.
An object keyname prefix that identifies the subset of objects to which the rule applies.
A container for specifying a tag key and value.
The rule applies only to objects that have the tag in their tag set.
Name of the tag.
Value of the tag.
A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. For example:
Name of the tag.
Value of the tag.
Specifies whether the rule is enabled.
A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects. Currently, Amazon S3 supports only the filter that you can specify for objects created with server-side encryption using an AWS KMS-Managed Key (SSE-KMS).
A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS. If you include SourceSelectionCriteria in the replication configuration, this element is required.
Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS-managed key.
A container for information about the replication destination.
The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store replicas of the object identified by the rule.
A replication configuration can replicate objects to only one destination bucket. If there are multiple rules in your replication configuration, all rules must specify the same destination bucket.
Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS account that owns the destination bucket by specifying the AccessControlTranslation property, this is the account ID of the destination bucket owner. For more information, see Cross-Region Replication Additional Configuration: Change Replica Owner in the Amazon Simple Storage Service Developer Guide .
The storage class to use when replicating objects, such as standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.
For valid values, see the StorageClass element of the PUT Bucket replication action in the Amazon Simple Storage Service API Reference .
Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.
Specifies the replica ownership. For default and valid values, see PUT bucket replication in the Amazon Simple Storage Service API Reference .
A container that provides information about encryption. If SourceSelectionCriteria is specified, you must specify this element.
Specifies the AWS KMS Key ID (Key ARN or Alias ARN) for the destination bucket. Amazon S3 uses this key to encrypt replica objects.
The status of the delete marker replication.
Note
In the current implementation, Amazon S3 doesn't replicate the delete markers. The status must be Disabled .
Returns the request payment configuration of a bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_request_payment(
Bucket='string'
)
{
'Payer': 'Requester'|'BucketOwner'
}
Response Structure
Specifies who pays for the download and request fees.
Returns the tag set associated with the bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_tagging(
Bucket='string'
)
{
'TagSet': [
{
'Key': 'string',
'Value': 'string'
},
]
}
Response Structure
Name of the tag.
Value of the tag.
Returns the versioning state of a bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_versioning(
Bucket='string'
)
{
'Status': 'Enabled'|'Suspended',
'MFADelete': 'Enabled'|'Disabled'
}
Response Structure
The versioning state of the bucket.
Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned.
Returns the website configuration for a bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_bucket_website(
Bucket='string'
)
{
'RedirectAllRequestsTo': {
'HostName': 'string',
'Protocol': 'http'|'https'
},
'IndexDocument': {
'Suffix': 'string'
},
'ErrorDocument': {
'Key': 'string'
},
'RoutingRules': [
{
'Condition': {
'HttpErrorCodeReturnedEquals': 'string',
'KeyPrefixEquals': 'string'
},
'Redirect': {
'HostName': 'string',
'HttpRedirectCode': 'string',
'Protocol': 'http'|'https',
'ReplaceKeyPrefixWith': 'string',
'ReplaceKeyWith': 'string'
}
},
]
}
Response Structure
Name of the host where requests are redirected.
Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character.
The object key name to use when a 4XX class error occurs.
Specifies the redirect behavior and when a redirect is applied.
A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the /docs folder, redirect to the /documents folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.
The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. Required when parent element Condition is specified and sibling KeyPrefixEquals is not specified. If both are specified, then both must be true for the redirect to be applied.
The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html , the key prefix will be ExamplePage.html . To redirect request for all pages with the prefix docs/ , the key prefix will be /docs , which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied.
Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return.
The host name to use in the redirect request.
The HTTP redirect code to use on the response. Not required if one of the siblings is present.
Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix docs/ (objects in the docs/ folder) to documents/ , you can set a condition block with KeyPrefixEquals set to docs/ and in the Redirect set ReplaceKeyPrefixWith to /documents . Not required if one of the siblings is present. Can be present only if ReplaceKeyWith is not provided.
The specific object key to use in the redirect request. For example, redirect request to error.html . Not required if one of the siblings is present. Can be present only if ReplaceKeyPrefixWith is not provided.
Retrieves objects from Amazon S3.
See also: AWS API Documentation
Request Syntax
response = client.get_object(
Bucket='string',
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Key='string',
Range='string',
ResponseCacheControl='string',
ResponseContentDisposition='string',
ResponseContentEncoding='string',
ResponseContentLanguage='string',
ResponseContentType='string',
ResponseExpires=datetime(2015, 1, 1),
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'Body': StreamingBody(),
'DeleteMarker': True|False,
'AcceptRanges': 'string',
'Expiration': 'string',
'Restore': 'string',
'LastModified': datetime(2015, 1, 1),
'ContentLength': 123,
'ETag': 'string',
'MissingMeta': 123,
'VersionId': 'string',
'CacheControl': 'string',
'ContentDisposition': 'string',
'ContentEncoding': 'string',
'ContentLanguage': 'string',
'ContentRange': 'string',
'ContentType': 'string',
'Expires': datetime(2015, 1, 1),
'WebsiteRedirectLocation': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'Metadata': {
'string': 'string'
},
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'RequestCharged': 'requester',
'ReplicationStatus': 'COMPLETE'|'PENDING'|'FAILED'|'REPLICA',
'PartsCount': 123,
'TagCount': 123,
'ObjectLockMode': 'GOVERNANCE'|'COMPLIANCE',
'ObjectLockRetainUntilDate': datetime(2015, 1, 1),
'ObjectLockLegalHoldStatus': 'ON'|'OFF'
}
Response Structure
(dict) --
Body (StreamingBody) --
Object data.
DeleteMarker (boolean) --
Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
AcceptRanges (string) --
Expiration (string) --
If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
Restore (string) --
Provides information about object restoration operation and expiration time of the restored object copy.
LastModified (datetime) --
Last modified date of the object
ContentLength (integer) --
Size of the body in bytes.
ETag (string) --
An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
MissingMeta (integer) --
This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
VersionId (string) --
Version of the object.
CacheControl (string) --
Specifies caching behavior along the request/reply chain.
ContentDisposition (string) --
Specifies presentational information for the object.
ContentEncoding (string) --
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
ContentLanguage (string) --
The language the content is in.
ContentRange (string) --
The portion of the object returned in the response.
ContentType (string) --
A standard MIME type describing the format of the object data.
Expires (datetime) --
The date and time at which the object is no longer cacheable.
WebsiteRedirectLocation (string) --
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
Metadata (dict) --
A map of metadata to store with the object in S3.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
StorageClass (string) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
ReplicationStatus (string) --
PartsCount (integer) --
The count of parts this object has.
TagCount (integer) --
The number of tags, if any, on the object.
ObjectLockMode (string) --
The object lock mode currently in place for this object.
ObjectLockRetainUntilDate (datetime) --
The date and time when this object's object lock will expire.
ObjectLockLegalHoldStatus (string) --
Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.
Returns the access control list (ACL) of an object.
See also: AWS API Documentation
Request Syntax
response = client.get_object_acl(
Bucket='string',
Key='string',
VersionId='string',
RequestPayer='requester'
)
dict
Response Syntax
{
'Owner': {
'DisplayName': 'string',
'ID': 'string'
},
'Grants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'RequestCharged': 'requester'
}
Response Structure
(dict) --
Owner (dict) --
Grants (list) --
A list of grants.
(dict) --
Grantee (dict) --
DisplayName (string) --
Screen name of the grantee.
EmailAddress (string) --
Email address of the grantee.
ID (string) --
The canonical user ID of the grantee.
Type (string) --
Type of grantee
URI (string) --
URI of the grantee group.
Permission (string) --
Specifies the permission given to the grantee.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Gets an object's current Legal Hold status.
See also: AWS API Documentation
Request Syntax
response = client.get_object_legal_hold(
Bucket='string',
Key='string',
VersionId='string',
RequestPayer='requester'
)
[REQUIRED]
The bucket containing the object whose Legal Hold status you want to retrieve.
[REQUIRED]
The key name for the object whose Legal Hold status you want to retrieve.
dict
Response Syntax
{
'LegalHold': {
'Status': 'ON'|'OFF'
}
}
Response Structure
(dict) --
LegalHold (dict) --
The current Legal Hold status for the specified object.
Status (string) --
Indicates whether the specified object has a Legal Hold in place.
Gets the object lock configuration for a bucket. The rule specified in the object lock configuration will be applied by default to every new object placed in the specified bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_object_lock_configuration(
Bucket='string'
)
[REQUIRED]
The bucket whose object lock configuration you want to retrieve.
{
'ObjectLockConfiguration': {
'ObjectLockEnabled': 'Enabled',
'Rule': {
'DefaultRetention': {
'Mode': 'GOVERNANCE'|'COMPLIANCE',
'Days': 123,
'Years': 123
}
}
}
}
Response Structure
The specified bucket's object lock configuration.
Indicates whether this bucket has an object lock configuration enabled.
The object lock rule in place for the specified object.
The default retention period that you want to apply to new objects placed in the specified bucket.
The default object lock retention mode you want to apply to new objects placed in the specified bucket.
The number of days that you want to specify for the default retention period.
The number of years that you want to specify for the default retention period.
Retrieves an object's retention settings.
See also: AWS API Documentation
Request Syntax
response = client.get_object_retention(
Bucket='string',
Key='string',
VersionId='string',
RequestPayer='requester'
)
[REQUIRED]
The bucket containing the object whose retention settings you want to retrieve.
[REQUIRED]
The key name for the object whose retention settings you want to retrieve.
dict
Response Syntax
{
'Retention': {
'Mode': 'GOVERNANCE'|'COMPLIANCE',
'RetainUntilDate': datetime(2015, 1, 1)
}
}
Response Structure
(dict) --
Retention (dict) --
The container element for an object's retention settings.
Mode (string) --
Indicates the Retention mode for the specified object.
RetainUntilDate (datetime) --
The date on which this object lock retention expires.
Returns the tag-set of an object.
See also: AWS API Documentation
Request Syntax
response = client.get_object_tagging(
Bucket='string',
Key='string',
VersionId='string'
)
dict
Response Syntax
{
'VersionId': 'string',
'TagSet': [
{
'Key': 'string',
'Value': 'string'
},
]
}
Response Structure
(dict) --
VersionId (string) --
TagSet (list) --
(dict) --
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
Return torrent files from a bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_object_torrent(
Bucket='string',
Key='string',
RequestPayer='requester'
)
dict
Response Syntax
{
'Body': StreamingBody(),
'RequestCharged': 'requester'
}
Response Structure
(dict) --
Body (StreamingBody) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Create a paginator for an operation.
Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket.
See also: AWS API Documentation
Request Syntax
response = client.get_public_access_block(
Bucket='string'
)
[REQUIRED]
The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to retrieve.
{
'PublicAccessBlockConfiguration': {
'BlockPublicAcls': True|False,
'IgnorePublicAcls': True|False,
'BlockPublicPolicy': True|False,
'RestrictPublicBuckets': True|False
}
}
Response Structure
The PublicAccessBlock configuration currently in effect for this Amazon S3 bucket.
Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:
Enabling this setting doesn't affect existing policies or ACLs.
Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.
Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.
Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.
Enabling this setting doesn't affect existing bucket policies.
Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.
Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.
Returns an object that can wait for some condition.
This operation is useful to determine if a bucket exists and you have permission to access it.
See also: AWS API Documentation
Request Syntax
response = client.head_bucket(
Bucket='string'
)
The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.
See also: AWS API Documentation
Request Syntax
response = client.head_object(
Bucket='string',
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Key='string',
Range='string',
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'DeleteMarker': True|False,
'AcceptRanges': 'string',
'Expiration': 'string',
'Restore': 'string',
'LastModified': datetime(2015, 1, 1),
'ContentLength': 123,
'ETag': 'string',
'MissingMeta': 123,
'VersionId': 'string',
'CacheControl': 'string',
'ContentDisposition': 'string',
'ContentEncoding': 'string',
'ContentLanguage': 'string',
'ContentType': 'string',
'Expires': datetime(2015, 1, 1),
'WebsiteRedirectLocation': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'Metadata': {
'string': 'string'
},
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'RequestCharged': 'requester',
'ReplicationStatus': 'COMPLETE'|'PENDING'|'FAILED'|'REPLICA',
'PartsCount': 123,
'ObjectLockMode': 'GOVERNANCE'|'COMPLIANCE',
'ObjectLockRetainUntilDate': datetime(2015, 1, 1),
'ObjectLockLegalHoldStatus': 'ON'|'OFF'
}
Response Structure
(dict) --
DeleteMarker (boolean) --
Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
AcceptRanges (string) --
Expiration (string) --
If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
Restore (string) --
Provides information about object restoration operation and expiration time of the restored object copy.
LastModified (datetime) --
Last modified date of the object
ContentLength (integer) --
Size of the body in bytes.
ETag (string) --
An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
MissingMeta (integer) --
This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
VersionId (string) --
Version of the object.
CacheControl (string) --
Specifies caching behavior along the request/reply chain.
ContentDisposition (string) --
Specifies presentational information for the object.
ContentEncoding (string) --
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
ContentLanguage (string) --
The language the content is in.
ContentType (string) --
A standard MIME type describing the format of the object data.
Expires (datetime) --
The date and time at which the object is no longer cacheable.
WebsiteRedirectLocation (string) --
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
Metadata (dict) --
A map of metadata to store with the object in S3.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
StorageClass (string) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
ReplicationStatus (string) --
PartsCount (integer) --
The count of parts this object has.
ObjectLockMode (string) --
The object lock mode currently in place for this object.
ObjectLockRetainUntilDate (datetime) --
The date and time when this object's object lock expires.
ObjectLockLegalHoldStatus (string) --
The Legal Hold status for the specified object.
Lists the analytics configurations for the bucket.
See also: AWS API Documentation
Request Syntax
response = client.list_bucket_analytics_configurations(
Bucket='string',
ContinuationToken='string'
)
[REQUIRED]
The name of the bucket from which analytics configurations are retrieved.
dict
Response Syntax
{
'IsTruncated': True|False,
'ContinuationToken': 'string',
'NextContinuationToken': 'string',
'AnalyticsConfigurationList': [
{
'Id': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
},
'StorageClassAnalysis': {
'DataExport': {
'OutputSchemaVersion': 'V_1',
'Destination': {
'S3BucketDestination': {
'Format': 'CSV',
'BucketAccountId': 'string',
'Bucket': 'string',
'Prefix': 'string'
}
}
}
}
},
]
}
Response Structure
(dict) --
IsTruncated (boolean) --
Indicates whether the returned list of analytics configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent request.
ContinuationToken (string) --
The ContinuationToken that represents where this request began.
NextContinuationToken (string) --
NextContinuationToken is sent when isTruncated is true, which indicates that there are more analytics configurations to list. The next request must include this NextContinuationToken. The token is obfuscated and is not a usable value.
AnalyticsConfigurationList (list) --
The list of analytics configurations for a bucket.
(dict) --
Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.
For more information, see GET Bucket analytics in the Amazon Simple Storage Service API Reference .
Id (string) --
The ID that identifies the analytics configuration.
Filter (dict) --
The filter used to describe a set of objects for analyses. A filter must have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be considered in any analysis.
Prefix (string) --
The prefix to use when evaluating an analytics filter.
Tag (dict) --
The tag to use when evaluating an analytics filter.
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
And (dict) --
A conjunction (logical AND) of predicates, which is used in evaluating an analytics filter. The operator must have at least two predicates.
Prefix (string) --
The prefix to use when evaluating an AND predicate: The prefix that an object must have to be included in the metrics results.
Tags (list) --
The list of tags to use when evaluating an AND predicate.
(dict) --
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
StorageClassAnalysis (dict) --
Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes.
DataExport (dict) --
Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.
OutputSchemaVersion (string) --
The version of the output schema to use when exporting data. Must be V_1 .
Destination (dict) --
The place to store the data for an analysis.
S3BucketDestination (dict) --
A destination signifying output to an S3 bucket.
Format (string) --
Specifies the file format used when exporting data to Amazon S3.
BucketAccountId (string) --
The account ID that owns the destination bucket. If no account ID is provided, the owner will not be validated prior to exporting data.
Bucket (string) --
The Amazon Resource Name (ARN) of the bucket to which data is exported.
Prefix (string) --
The prefix to use when exporting data. The prefix is prepended to all results.
Returns a list of inventory configurations for the bucket.
See also: AWS API Documentation
Request Syntax
response = client.list_bucket_inventory_configurations(
Bucket='string',
ContinuationToken='string'
)
[REQUIRED]
The name of the bucket containing the inventory configurations to retrieve.
dict
Response Syntax
{
'ContinuationToken': 'string',
'InventoryConfigurationList': [
{
'Destination': {
'S3BucketDestination': {
'AccountId': 'string',
'Bucket': 'string',
'Format': 'CSV'|'ORC'|'Parquet',
'Prefix': 'string',
'Encryption': {
'SSES3': {},
'SSEKMS': {
'KeyId': 'string'
}
}
}
},
'IsEnabled': True|False,
'Filter': {
'Prefix': 'string'
},
'Id': 'string',
'IncludedObjectVersions': 'All'|'Current',
'OptionalFields': [
'Size'|'LastModifiedDate'|'StorageClass'|'ETag'|'IsMultipartUploaded'|'ReplicationStatus'|'EncryptionStatus'|'ObjectLockRetainUntilDate'|'ObjectLockMode'|'ObjectLockLegalHoldStatus',
],
'Schedule': {
'Frequency': 'Daily'|'Weekly'
}
},
],
'IsTruncated': True|False,
'NextContinuationToken': 'string'
}
Response Structure
(dict) --
ContinuationToken (string) --
If sent in the request, the marker that is used as a starting point for this inventory configuration list response.
InventoryConfigurationList (list) --
The list of inventory configurations for a bucket.
(dict) --
Specifies the inventory configuration for an Amazon S3 bucket. For more information, see GET Bucket inventory in the Amazon Simple Storage Service API Reference .
Destination (dict) --
Contains information about where to publish the inventory results.
S3BucketDestination (dict) --
Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.
AccountId (string) --
The ID of the account that owns the destination bucket.
Bucket (string) --
The Amazon resource name (ARN) of the bucket where inventory results will be published.
Format (string) --
Specifies the output format of the inventory results.
Prefix (string) --
The prefix that is prepended to all inventory results.
Encryption (dict) --
Contains the type of server-side encryption used to encrypt the inventory results.
SSES3 (dict) --
Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
SSEKMS (dict) --
Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
KeyId (string) --
Specifies the ID of the AWS Key Management Service (KMS) master encryption key to use for encrypting Inventory reports.
IsEnabled (boolean) --
Specifies whether the inventory is enabled or disabled. If set to True , an inventory list is generated. If set to False , no inventory list is generated.
Filter (dict) --
Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.
Prefix (string) --
The prefix that an object must have to be included in the inventory results.
Id (string) --
The ID used to identify the inventory configuration.
IncludedObjectVersions (string) --
Object versions to include in the inventory list. If set to All , the list includes all the object versions, which adds the version-related fields VersionId , IsLatest , and DeleteMarker to the list. If set to Current , the list does not contain these version-related fields.
OptionalFields (list) --
Contains the optional fields that are included in the inventory results.
Schedule (dict) --
Specifies the schedule for generating inventory results.
Frequency (string) --
Specifies how frequently inventory results are produced.
IsTruncated (boolean) --
Indicates whether the returned list of inventory configurations is truncated in this response. A value of true indicates that the list is truncated.
NextContinuationToken (string) --
The marker used to continue this inventory configuration listing. Use the NextContinuationToken from this response to continue the listing in a subsequent request. The continuation token is an opaque value that Amazon S3 understands.
Lists the metrics configurations for the bucket.
See also: AWS API Documentation
Request Syntax
response = client.list_bucket_metrics_configurations(
Bucket='string',
ContinuationToken='string'
)
[REQUIRED]
The name of the bucket containing the metrics configurations to retrieve.
dict
Response Syntax
{
'IsTruncated': True|False,
'ContinuationToken': 'string',
'NextContinuationToken': 'string',
'MetricsConfigurationList': [
{
'Id': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
}
},
]
}
Response Structure
(dict) --
IsTruncated (boolean) --
Indicates whether the returned list of metrics configurations is complete. A value of true indicates that the list is not complete and the NextContinuationToken will be provided for a subsequent request.
ContinuationToken (string) --
The marker that is used as a starting point for this metrics configuration list response. This value is present if it was sent in the request.
NextContinuationToken (string) --
The marker used to continue a metrics configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.
MetricsConfigurationList (list) --
The list of metrics configurations for a bucket.
(dict) --
Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see PUT Bucket metrics in the Amazon Simple Storage Service API Reference .
Id (string) --
The ID used to identify the metrics configuration.
Filter (dict) --
Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator).
Prefix (string) --
The prefix used when evaluating a metrics filter.
Tag (dict) --
The tag used when evaluating a metrics filter.
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
And (dict) --
A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The operator must have at least two predicates, and an object must match all of the predicates in order for the filter to apply.
Prefix (string) --
The prefix used when evaluating an AND predicate.
Tags (list) --
The list of tags used when evaluating an AND predicate.
(dict) --
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
Returns a list of all buckets owned by the authenticated sender of the request.
See also: AWS API Documentation
Request Syntax
response = client.list_buckets()
{
'Buckets': [
{
'Name': 'string',
'CreationDate': datetime(2015, 1, 1)
},
],
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
}
Response Structure
The name of the bucket.
Date the bucket was created.
This operation lists in-progress multipart uploads.
See also: AWS API Documentation
Request Syntax
response = client.list_multipart_uploads(
Bucket='string',
Delimiter='string',
EncodingType='url',
KeyMarker='string',
MaxUploads=123,
Prefix='string',
UploadIdMarker='string'
)
dict
Response Syntax
{
'Bucket': 'string',
'KeyMarker': 'string',
'UploadIdMarker': 'string',
'NextKeyMarker': 'string',
'Prefix': 'string',
'Delimiter': 'string',
'NextUploadIdMarker': 'string',
'MaxUploads': 123,
'IsTruncated': True|False,
'Uploads': [
{
'UploadId': 'string',
'Key': 'string',
'Initiated': datetime(2015, 1, 1),
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'Owner': {
'DisplayName': 'string',
'ID': 'string'
},
'Initiator': {
'ID': 'string',
'DisplayName': 'string'
}
},
],
'CommonPrefixes': [
{
'Prefix': 'string'
},
],
'EncodingType': 'url'
}
Response Structure
(dict) --
Bucket (string) --
Name of the bucket to which the multipart upload was initiated.
KeyMarker (string) --
The key at or after which the listing began.
UploadIdMarker (string) --
Upload ID after which listing began.
NextKeyMarker (string) --
When a list is truncated, this element specifies the value that should be used for the key-marker request parameter in a subsequent request.
Prefix (string) --
When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.
Delimiter (string) --
NextUploadIdMarker (string) --
When a list is truncated, this element specifies the value that should be used for the upload-id-marker request parameter in a subsequent request.
MaxUploads (integer) --
Maximum number of multipart uploads that could have been included in the response.
IsTruncated (boolean) --
Indicates whether the returned list of multipart uploads is truncated. A value of true indicates that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the limit allowed or specified by max uploads.
Uploads (list) --
(dict) --
UploadId (string) --
Upload ID that identifies the multipart upload.
Key (string) --
Key of the object for which the multipart upload was initiated.
Initiated (datetime) --
Date and time at which the multipart upload was initiated.
StorageClass (string) --
The class of storage used to store the object.
Owner (dict) --
Initiator (dict) --
Identifies who initiated the multipart upload.
ID (string) --
If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.
DisplayName (string) --
Name of the Principal.
CommonPrefixes (list) --
EncodingType (string) --
Encoding type used by Amazon S3 to encode object keys in the response.
Returns metadata about all of the versions of objects in a bucket.
See also: AWS API Documentation
Request Syntax
response = client.list_object_versions(
Bucket='string',
Delimiter='string',
EncodingType='url',
KeyMarker='string',
MaxKeys=123,
Prefix='string',
VersionIdMarker='string'
)
dict
Response Syntax
{
'IsTruncated': True|False,
'KeyMarker': 'string',
'VersionIdMarker': 'string',
'NextKeyMarker': 'string',
'NextVersionIdMarker': 'string',
'Versions': [
{
'ETag': 'string',
'Size': 123,
'StorageClass': 'STANDARD',
'Key': 'string',
'VersionId': 'string',
'IsLatest': True|False,
'LastModified': datetime(2015, 1, 1),
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
],
'DeleteMarkers': [
{
'Owner': {
'DisplayName': 'string',
'ID': 'string'
},
'Key': 'string',
'VersionId': 'string',
'IsLatest': True|False,
'LastModified': datetime(2015, 1, 1)
},
],
'Name': 'string',
'Prefix': 'string',
'Delimiter': 'string',
'MaxKeys': 123,
'CommonPrefixes': [
{
'Prefix': 'string'
},
],
'EncodingType': 'url'
}
Response Structure
(dict) --
IsTruncated (boolean) --
A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.
KeyMarker (string) --
Marks the last Key returned in a truncated response.
VersionIdMarker (string) --
NextKeyMarker (string) --
Use this value for the key marker request parameter in a subsequent request.
NextVersionIdMarker (string) --
Use this value for the next version id marker parameter in a subsequent request.
Versions (list) --
(dict) --
ETag (string) --
Size (integer) --
Size in bytes of the object.
StorageClass (string) --
The class of storage used to store the object.
Key (string) --
The object key.
VersionId (string) --
Version ID of an object.
IsLatest (boolean) --
Specifies whether the object is (true) or is not (false) the latest version of an object.
LastModified (datetime) --
Date and time the object was last modified.
Owner (dict) --
DeleteMarkers (list) --
(dict) --
Owner (dict) --
Key (string) --
The object key.
VersionId (string) --
Version ID of an object.
IsLatest (boolean) --
Specifies whether the object is (true) or is not (false) the latest version of an object.
LastModified (datetime) --
Date and time the object was last modified.
Name (string) --
Prefix (string) --
Delimiter (string) --
MaxKeys (integer) --
CommonPrefixes (list) --
EncodingType (string) --
Encoding type used by Amazon S3 to encode object keys in the response.
Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket.
See also: AWS API Documentation
Request Syntax
response = client.list_objects(
Bucket='string',
Delimiter='string',
EncodingType='url',
Marker='string',
MaxKeys=123,
Prefix='string',
RequestPayer='requester'
)
dict
Response Syntax
{
'IsTruncated': True|False,
'Marker': 'string',
'NextMarker': 'string',
'Contents': [
{
'Key': 'string',
'LastModified': datetime(2015, 1, 1),
'ETag': 'string',
'Size': 123,
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE',
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
],
'Name': 'string',
'Prefix': 'string',
'Delimiter': 'string',
'MaxKeys': 123,
'CommonPrefixes': [
{
'Prefix': 'string'
},
],
'EncodingType': 'url'
}
Response Structure
(dict) --
IsTruncated (boolean) --
A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.
Marker (string) --
NextMarker (string) --
When response is truncated (the IsTruncated element value in the response is true), you can use the key name in this field as marker in the subsequent request to get next set of objects. Amazon S3 lists objects in alphabetical order Note: This element is returned only if you have delimiter request parameter specified. If response does not include the NextMaker and it is truncated, you can use the value of the last Key in the response as the marker in the subsequent request to get the next set of object keys.
Contents (list) --
(dict) --
Key (string) --
LastModified (datetime) --
ETag (string) --
Size (integer) --
StorageClass (string) --
The class of storage used to store the object.
Owner (dict) --
Name (string) --
Prefix (string) --
Delimiter (string) --
MaxKeys (integer) --
CommonPrefixes (list) --
EncodingType (string) --
Encoding type used by Amazon S3 to encode object keys in the response.
Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. Note: ListObjectsV2 is the revised List Objects API and we recommend you use this revised API for new application development.
See also: AWS API Documentation
Request Syntax
response = client.list_objects_v2(
Bucket='string',
Delimiter='string',
EncodingType='url',
MaxKeys=123,
Prefix='string',
ContinuationToken='string',
FetchOwner=True|False,
StartAfter='string',
RequestPayer='requester'
)
[REQUIRED]
Name of the bucket to list.
dict
Response Syntax
{
'IsTruncated': True|False,
'Contents': [
{
'Key': 'string',
'LastModified': datetime(2015, 1, 1),
'ETag': 'string',
'Size': 123,
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE',
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
],
'Name': 'string',
'Prefix': 'string',
'Delimiter': 'string',
'MaxKeys': 123,
'CommonPrefixes': [
{
'Prefix': 'string'
},
],
'EncodingType': 'url',
'KeyCount': 123,
'ContinuationToken': 'string',
'NextContinuationToken': 'string',
'StartAfter': 'string'
}
Response Structure
(dict) --
IsTruncated (boolean) --
A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.
Contents (list) --
Metadata about each object returned.
(dict) --
Key (string) --
LastModified (datetime) --
ETag (string) --
Size (integer) --
StorageClass (string) --
The class of storage used to store the object.
Owner (dict) --
Name (string) --
Name of the bucket to list.
Prefix (string) --
Limits the response to keys that begin with the specified prefix.
Delimiter (string) --
A delimiter is a character you use to group keys.
MaxKeys (integer) --
Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more.
CommonPrefixes (list) --
CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by delimiter
EncodingType (string) --
Encoding type used by Amazon S3 to encode object keys in the response.
KeyCount (integer) --
KeyCount is the number of keys returned with this request. KeyCount will always be less than equals to MaxKeys field. Say you ask for 50 keys, your result will include less than equals 50 keys
ContinuationToken (string) --
ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key
NextContinuationToken (string) --
NextContinuationToken is sent when isTruncated is true which means there are more keys in the bucket that can be listed. The next list requests to Amazon S3 can be continued with this NextContinuationToken. NextContinuationToken is obfuscated and is not a real key
StartAfter (string) --
StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. StartAfter can be any key in the bucket
Lists the parts that have been uploaded for a specific multipart upload.
See also: AWS API Documentation
Request Syntax
response = client.list_parts(
Bucket='string',
Key='string',
MaxParts=123,
PartNumberMarker=123,
UploadId='string',
RequestPayer='requester'
)
[REQUIRED]
Upload ID identifying the multipart upload whose parts are being listed.
dict
Response Syntax
{
'AbortDate': datetime(2015, 1, 1),
'AbortRuleId': 'string',
'Bucket': 'string',
'Key': 'string',
'UploadId': 'string',
'PartNumberMarker': 123,
'NextPartNumberMarker': 123,
'MaxParts': 123,
'IsTruncated': True|False,
'Parts': [
{
'PartNumber': 123,
'LastModified': datetime(2015, 1, 1),
'ETag': 'string',
'Size': 123
},
],
'Initiator': {
'ID': 'string',
'DisplayName': 'string'
},
'Owner': {
'DisplayName': 'string',
'ID': 'string'
},
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
AbortDate (datetime) --
Date when multipart upload will become eligible for abort operation by lifecycle.
AbortRuleId (string) --
Id of the lifecycle rule that makes a multipart upload eligible for abort operation.
Bucket (string) --
Name of the bucket to which the multipart upload was initiated.
Key (string) --
Object key for which the multipart upload was initiated.
UploadId (string) --
Upload ID identifying the multipart upload whose parts are being listed.
PartNumberMarker (integer) --
Part number after which listing begins.
NextPartNumberMarker (integer) --
When a list is truncated, this element specifies the last part in the list, as well as the value to use for the part-number-marker request parameter in a subsequent request.
MaxParts (integer) --
Maximum number of parts that were allowed in the response.
IsTruncated (boolean) --
Indicates whether the returned list of parts is truncated.
Parts (list) --
(dict) --
PartNumber (integer) --
Part number identifying the part. This is a positive integer between 1 and 10,000.
LastModified (datetime) --
Date and time at which the part was uploaded.
ETag (string) --
Entity tag returned when the part was uploaded.
Size (integer) --
Size in bytes of the uploaded part data.
Initiator (dict) --
Identifies who initiated the multipart upload.
ID (string) --
If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.
DisplayName (string) --
Name of the Principal.
Owner (dict) --
StorageClass (string) --
The class of storage used to store the object.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Sets the accelerate configuration of an existing bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_accelerate_configuration(
Bucket='string',
AccelerateConfiguration={
'Status': 'Enabled'|'Suspended'
}
)
[REQUIRED]
Name of the bucket for which the accelerate configuration is set.
[REQUIRED]
Specifies the Accelerate Configuration you want to set for the bucket.
Specifies the transfer acceleration status of the bucket.
None
Sets the permissions on a bucket using access control lists (ACL).
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_acl(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read',
AccessControlPolicy={
'Grants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
Bucket='string',
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWrite='string',
GrantWriteACP='string'
)
Contains the elements that set the ACL permissions for an object per grantee.
A list of grants.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Specifies the permission given to the grantee.
Container for the bucket owner's display name and ID.
None
Sets an analytics configuration for the bucket (specified by the analytics configuration ID).
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_analytics_configuration(
Bucket='string',
Id='string',
AnalyticsConfiguration={
'Id': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
},
'StorageClassAnalysis': {
'DataExport': {
'OutputSchemaVersion': 'V_1',
'Destination': {
'S3BucketDestination': {
'Format': 'CSV',
'BucketAccountId': 'string',
'Bucket': 'string',
'Prefix': 'string'
}
}
}
}
}
)
[REQUIRED]
The name of the bucket to which an analytics configuration is stored.
[REQUIRED]
The ID that identifies the analytics configuration.
[REQUIRED]
The configuration and any analyses for the analytics filter.
The ID that identifies the analytics configuration.
The filter used to describe a set of objects for analyses. A filter must have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no filter is provided, all objects will be considered in any analysis.
The prefix to use when evaluating an analytics filter.
The tag to use when evaluating an analytics filter.
Name of the tag.
Value of the tag.
A conjunction (logical AND) of predicates, which is used in evaluating an analytics filter. The operator must have at least two predicates.
The prefix to use when evaluating an AND predicate: The prefix that an object must have to be included in the metrics results.
The list of tags to use when evaluating an AND predicate.
Name of the tag.
Value of the tag.
Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes.
Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.
The version of the output schema to use when exporting data. Must be V_1 .
The place to store the data for an analysis.
A destination signifying output to an S3 bucket.
Specifies the file format used when exporting data to Amazon S3.
The account ID that owns the destination bucket. If no account ID is provided, the owner will not be validated prior to exporting data.
The Amazon Resource Name (ARN) of the bucket to which data is exported.
The prefix to use when exporting data. The prefix is prepended to all results.
None
Sets the CORS configuration for a bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_cors(
Bucket='string',
CORSConfiguration={
'CORSRules': [
{
'AllowedHeaders': [
'string',
],
'AllowedMethods': [
'string',
],
'AllowedOrigins': [
'string',
],
'ExposeHeaders': [
'string',
],
'MaxAgeSeconds': 123
},
]
},
)
[REQUIRED]
A set of allowed origins and methods.
Specifies a cross-origin access rule for an Amazon S3 bucket.
Headers that are specified in the Access-Control-Request-Headers header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed.
An HTTP method that you allow the origin to execute. Valid values are GET , PUT , HEAD , POST , and DELETE .
One or more origins you want customers to be able to access the bucket from.
One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
The time in seconds that your browser is to cache the preflight response for the specified resource.
None
Creates a new server-side encryption configuration (or replaces an existing one, if present).
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_encryption(
Bucket='string',
ContentMD5='string',
ServerSideEncryptionConfiguration={
'Rules': [
{
'ApplyServerSideEncryptionByDefault': {
'SSEAlgorithm': 'AES256'|'aws:kms',
'KMSMasterKeyID': 'string'
}
},
]
}
)
[REQUIRED]
Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS). For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption in the Amazon Simple Storage Service Developer Guide .
[REQUIRED]
Container for information about a particular server-side encryption configuration rule.
Specifies the default server-side encryption configuration.
Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.
Server-side encryption algorithm to use for the default encryption.
KMS master key ID to use for the default encryption. This parameter is allowed if and only if SSEAlgorithm is set to aws:kms .
None
Adds an inventory configuration (identified by the inventory ID) from the bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_inventory_configuration(
Bucket='string',
Id='string',
InventoryConfiguration={
'Destination': {
'S3BucketDestination': {
'AccountId': 'string',
'Bucket': 'string',
'Format': 'CSV'|'ORC'|'Parquet',
'Prefix': 'string',
'Encryption': {
'SSES3': {}
,
'SSEKMS': {
'KeyId': 'string'
}
}
}
},
'IsEnabled': True|False,
'Filter': {
'Prefix': 'string'
},
'Id': 'string',
'IncludedObjectVersions': 'All'|'Current',
'OptionalFields': [
'Size'|'LastModifiedDate'|'StorageClass'|'ETag'|'IsMultipartUploaded'|'ReplicationStatus'|'EncryptionStatus'|'ObjectLockRetainUntilDate'|'ObjectLockMode'|'ObjectLockLegalHoldStatus',
],
'Schedule': {
'Frequency': 'Daily'|'Weekly'
}
}
)
[REQUIRED]
The name of the bucket where the inventory configuration will be stored.
[REQUIRED]
The ID used to identify the inventory configuration.
[REQUIRED]
Specifies the inventory configuration.
Contains information about where to publish the inventory results.
Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.
The ID of the account that owns the destination bucket.
The Amazon resource name (ARN) of the bucket where inventory results will be published.
Specifies the output format of the inventory results.
The prefix that is prepended to all inventory results.
Contains the type of server-side encryption used to encrypt the inventory results.
Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
Specifies the ID of the AWS Key Management Service (KMS) master encryption key to use for encrypting Inventory reports.
Specifies whether the inventory is enabled or disabled. If set to True , an inventory list is generated. If set to False , no inventory list is generated.
Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.
The prefix that an object must have to be included in the inventory results.
The ID used to identify the inventory configuration.
Object versions to include in the inventory list. If set to All , the list includes all the object versions, which adds the version-related fields VersionId , IsLatest , and DeleteMarker to the list. If set to Current , the list does not contain these version-related fields.
Contains the optional fields that are included in the inventory results.
Specifies the schedule for generating inventory results.
Specifies how frequently inventory results are produced.
None
No longer used, see the PutBucketLifecycleConfiguration operation.
Danger
This operation is deprecated and may not function as expected. This operation should not be used going forward and is only kept for the purpose of backwards compatiblity.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_lifecycle(
Bucket='string',
LifecycleConfiguration={
'Rules': [
{
'Expiration': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'ExpiredObjectDeleteMarker': True|False
},
'ID': 'string',
'Prefix': 'string',
'Status': 'Enabled'|'Disabled',
'Transition': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
'NoncurrentVersionTransition': {
'NoncurrentDays': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
'NoncurrentVersionExpiration': {
'NoncurrentDays': 123
},
'AbortIncompleteMultipartUpload': {
'DaysAfterInitiation': 123
}
},
]
}
)
Specifies lifecycle rules for an Amazon S3 bucket. For more information, see PUT Bucket lifecycle in the Amazon Simple Storage Service API Reference .
Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
Unique identifier for the rule. The value can't be longer than 255 characters.
Object key prefix that identifies one or more objects to which this rule applies.
If Enabled , the rule is currently being applied. If Disabled , the rule is not currently being applied.
Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
The storage class to which you want the object to transition.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide .
The class of storage used to store the object.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
None
Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_lifecycle_configuration(
Bucket='string',
LifecycleConfiguration={
'Rules': [
{
'Expiration': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'ExpiredObjectDeleteMarker': True|False
},
'ID': 'string',
'Prefix': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
},
'Status': 'Enabled'|'Disabled',
'Transitions': [
{
'Date': datetime(2015, 1, 1),
'Days': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
],
'NoncurrentVersionTransitions': [
{
'NoncurrentDays': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
],
'NoncurrentVersionExpiration': {
'NoncurrentDays': 123
},
'AbortIncompleteMultipartUpload': {
'DaysAfterInitiation': 123
}
},
]
}
)
A lifecycle rule for individual objects in an Amazon S3 bucket.
Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
Unique identifier for the rule. The value cannot be longer than 255 characters.
Prefix identifying one or more objects to which the rule applies. This is No longer used; use Filter instead.
Prefix identifying one or more objects to which the rule applies.
This tag must exist in the object's tag set in order for the rule to apply.
Name of the tag.
Value of the tag.
All of these tags must exist in the object's tag set in order for the rule to apply.
Name of the tag.
Value of the tag.
If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.
Specifies when an object transitions to a specified storage class.
Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
The storage class to which you want the object to transition.
Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA , ONEZONE_IA , INTELLIGENT_TIERING , GLACIER , or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA , ONEZONE_IA , INTELLIGENT_TIERING , GLACIER , or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide .
The class of storage used to store the object.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
None
Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. To set the logging status of a bucket, you must be the bucket owner.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_logging(
Bucket='string',
BucketLoggingStatus={
'LoggingEnabled': {
'TargetBucket': 'string',
'TargetGrants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'READ'|'WRITE'
},
],
'TargetPrefix': 'string'
}
},
)
[REQUIRED]
Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Logging permissions assigned to the Grantee for the bucket.
A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket.
None
Sets a metrics configuration (specified by the metrics configuration ID) for the bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_metrics_configuration(
Bucket='string',
Id='string',
MetricsConfiguration={
'Id': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
}
}
)
[REQUIRED]
The name of the bucket for which the metrics configuration is set.
[REQUIRED]
The ID used to identify the metrics configuration.
[REQUIRED]
Specifies the metrics configuration.
The ID used to identify the metrics configuration.
Specifies a metrics configuration filter. The metrics configuration will only include objects that meet the filter's criteria. A filter must be a prefix, a tag, or a conjunction (MetricsAndOperator).
The prefix used when evaluating a metrics filter.
The tag used when evaluating a metrics filter.
Name of the tag.
Value of the tag.
A conjunction (logical AND) of predicates, which is used in evaluating a metrics filter. The operator must have at least two predicates, and an object must match all of the predicates in order for the filter to apply.
The prefix used when evaluating an AND predicate.
The list of tags used when evaluating an AND predicate.
Name of the tag.
Value of the tag.
None
No longer used, see the PutBucketNotificationConfiguration operation.
Danger
This operation is deprecated and may not function as expected. This operation should not be used going forward and is only kept for the purpose of backwards compatiblity.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_notification(
Bucket='string',
NotificationConfiguration={
'TopicConfiguration': {
'Id': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Event': 's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
'Topic': 'string'
},
'QueueConfiguration': {
'Id': 'string',
'Event': 's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Queue': 'string'
},
'CloudFunctionConfiguration': {
'Id': 'string',
'Event': 's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'CloudFunction': 'string',
'InvocationRole': 'string'
}
}
)
[REQUIRED]
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The bucket event for which to send notifications.
Bucket event for which to send notifications.
Amazon SNS topic to which Amazon S3 will publish a message to report the specified events for the bucket.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The bucket event for which to send notifications.
The bucket event for which to send notifications.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The bucket event for which to send notifications.
The bucket event for which to send notifications.
None
Enables notifications of specified events for a bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_notification_configuration(
Bucket='string',
NotificationConfiguration={
'TopicConfigurations': [
{
'Id': 'string',
'TopicArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
],
'QueueConfigurations': [
{
'Id': 'string',
'QueueArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
],
'LambdaFunctionConfigurations': [
{
'Id': 'string',
'LambdaFunctionArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
]
}
)
[REQUIRED]
The topic to which notifications are sent and the events for which notifications are generated.
A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.
The Amazon S3 bucket event about which to send notifications. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide .
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.
Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
Describes the AWS Lambda functions to invoke and the events for which to invoke them.
A container for specifying the configuration for AWS Lambda notifications.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.
The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide .
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
None
Applies an Amazon S3 bucket policy to an Amazon S3 bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_policy(
Bucket='string',
ConfirmRemoveSelfBucketAccess=True|False,
Policy='string'
)
[REQUIRED]
The bucket policy as a JSON document.
None
Creates a replication configuration or replaces an existing one. For more information, see Cross-Region Replication (CRR) in the Amazon S3 Developer Guide .
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_replication(
Bucket='string',
ReplicationConfiguration={
'Role': 'string',
'Rules': [
{
'ID': 'string',
'Priority': 123,
'Prefix': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
},
'Status': 'Enabled'|'Disabled',
'SourceSelectionCriteria': {
'SseKmsEncryptedObjects': {
'Status': 'Enabled'|'Disabled'
}
},
'Destination': {
'Bucket': 'string',
'Account': 'string',
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'AccessControlTranslation': {
'Owner': 'Destination'
},
'EncryptionConfiguration': {
'ReplicaKmsKeyID': 'string'
}
},
'DeleteMarkerReplication': {
'Status': 'Enabled'|'Disabled'
}
},
]
},
Token='string'
)
[REQUIRED]
The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects. For more information, see How to Set Up Cross-Region Replication in the Amazon Simple Storage Service Developer Guide .
A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules.
Specifies which Amazon S3 objects to replicate and where to store the replicas.
A unique identifier for the rule. The maximum value is 255 characters.
The priority associated with the rule. If you specify multiple rules in a replication configuration, Amazon S3 prioritizes the rules to prevent conflicts when filtering. If two or more rules identify the same object based on a specified filter, the rule with higher priority takes precedence. For example:
For more information, see Cross-Region Replication (CRR) in the Amazon S3 Developer Guide .
An object keyname prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string.
An object keyname prefix that identifies the subset of objects to which the rule applies.
A container for specifying a tag key and value.
The rule applies only to objects that have the tag in their tag set.
Name of the tag.
Value of the tag.
A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. For example:
Name of the tag.
Value of the tag.
Specifies whether the rule is enabled.
A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects. Currently, Amazon S3 supports only the filter that you can specify for objects created with server-side encryption using an AWS KMS-Managed Key (SSE-KMS).
A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS. If you include SourceSelectionCriteria in the replication configuration, this element is required.
Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS-managed key.
A container for information about the replication destination.
The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store replicas of the object identified by the rule.
A replication configuration can replicate objects to only one destination bucket. If there are multiple rules in your replication configuration, all rules must specify the same destination bucket.
Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS account that owns the destination bucket by specifying the AccessControlTranslation property, this is the account ID of the destination bucket owner. For more information, see Cross-Region Replication Additional Configuration: Change Replica Owner in the Amazon Simple Storage Service Developer Guide .
The storage class to use when replicating objects, such as standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.
For valid values, see the StorageClass element of the PUT Bucket replication action in the Amazon Simple Storage Service API Reference .
Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.
Specifies the replica ownership. For default and valid values, see PUT bucket replication in the Amazon Simple Storage Service API Reference .
A container that provides information about encryption. If SourceSelectionCriteria is specified, you must specify this element.
Specifies the AWS KMS Key ID (Key ARN or Alias ARN) for the destination bucket. Amazon S3 uses this key to encrypt replica objects.
The status of the delete marker replication.
Note
In the current implementation, Amazon S3 doesn't replicate the delete markers. The status must be Disabled .
None
Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. Documentation on requester pays buckets can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_request_payment(
Bucket='string',
RequestPaymentConfiguration={
'Payer': 'Requester'|'BucketOwner'
}
)
[REQUIRED]
Specifies who pays for the download and request fees.
None
Sets the tags for a bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_tagging(
Bucket='string',
Tagging={
'TagSet': [
{
'Key': 'string',
'Value': 'string'
},
]
}
)
[REQUIRED]
Name of the tag.
Value of the tag.
None
Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_versioning(
Bucket='string',
MFA='string',
VersioningConfiguration={
'MFADelete': 'Enabled'|'Disabled',
'Status': 'Enabled'|'Suspended'
}
)
[REQUIRED]
Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned.
The versioning state of the bucket.
None
Set the website configuration for a bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_bucket_website(
Bucket='string',
WebsiteConfiguration={
'ErrorDocument': {
'Key': 'string'
},
'IndexDocument': {
'Suffix': 'string'
},
'RedirectAllRequestsTo': {
'HostName': 'string',
'Protocol': 'http'|'https'
},
'RoutingRules': [
{
'Condition': {
'HttpErrorCodeReturnedEquals': 'string',
'KeyPrefixEquals': 'string'
},
'Redirect': {
'HostName': 'string',
'HttpRedirectCode': 'string',
'Protocol': 'http'|'https',
'ReplaceKeyPrefixWith': 'string',
'ReplaceKeyWith': 'string'
}
},
]
}
)
[REQUIRED]
The name of the error document for the website.
The object key name to use when a 4XX class error occurs.
The name of the index document for the website.
A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character.
The redirect behavior for every request to this bucket's website endpoint.
Warning
If you specify this property, you can't specify any other property.
Name of the host where requests are redirected.
Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
Rules that define when a redirect is applied and the redirect behavior.
Specifies the redirect behavior and when a redirect is applied.
A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the /docs folder, redirect to the /documents folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.
The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. Required when parent element Condition is specified and sibling KeyPrefixEquals is not specified. If both are specified, then both must be true for the redirect to be applied.
The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html , the key prefix will be ExamplePage.html . To redirect request for all pages with the prefix docs/ , the key prefix will be /docs , which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied.
Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return.
The host name to use in the redirect request.
The HTTP redirect code to use on the response. Not required if one of the siblings is present.
Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix docs/ (objects in the docs/ folder) to documents/ , you can set a condition block with KeyPrefixEquals set to docs/ and in the Redirect set ReplaceKeyPrefixWith to /documents . Not required if one of the siblings is present. Can be present only if ReplaceKeyWith is not provided.
The specific object key to use in the redirect request. For example, redirect request to error.html . Not required if one of the siblings is present. Can be present only if ReplaceKeyPrefixWith is not provided.
None
Adds an object to a bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_object(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
Body=b'bytes'|file,
Bucket='string',
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentLength=123,
ContentMD5='string',
ContentType='string',
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Key='string',
Metadata={
'string': 'string'
},
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
[REQUIRED]
Name of the bucket to which the PUT operation was initiated.
[REQUIRED]
Object key for which the PUT operation was initiated.
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'Expiration': 'string',
'ETag': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'VersionId': 'string',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'SSEKMSEncryptionContext': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
Expiration (string) --
If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.
ETag (string) --
Entity tag for the uploaded object.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
VersionId (string) --
Version of the object.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
SSEKMSEncryptionContext (string) --
If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket
See also: AWS API Documentation
Request Syntax
response = client.put_object_acl(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
AccessControlPolicy={
'Grants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
Bucket='string',
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWrite='string',
GrantWriteACP='string',
Key='string',
RequestPayer='requester',
VersionId='string'
)
Contains the elements that set the ACL permissions for an object per grantee.
A list of grants.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Specifies the permission given to the grantee.
Container for the bucket owner's display name and ID.
dict
Response Syntax
{
'RequestCharged': 'requester'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Applies a Legal Hold configuration to the specified object.
See also: AWS API Documentation
Request Syntax
response = client.put_object_legal_hold(
Bucket='string',
Key='string',
LegalHold={
'Status': 'ON'|'OFF'
},
RequestPayer='requester',
VersionId='string',
ContentMD5='string'
)
[REQUIRED]
The bucket containing the object that you want to place a Legal Hold on.
[REQUIRED]
The key name for the object that you want to place a Legal Hold on.
Container element for the Legal Hold configuration you want to apply to the specified object.
Indicates whether the specified object has a Legal Hold in place.
dict
Response Syntax
{
'RequestCharged': 'requester'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Places an object lock configuration on the specified bucket. The rule specified in the object lock configuration will be applied by default to every new object placed in the specified bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_object_lock_configuration(
Bucket='string',
ObjectLockConfiguration={
'ObjectLockEnabled': 'Enabled',
'Rule': {
'DefaultRetention': {
'Mode': 'GOVERNANCE'|'COMPLIANCE',
'Days': 123,
'Years': 123
}
}
},
RequestPayer='requester',
Token='string',
ContentMD5='string'
)
[REQUIRED]
The bucket whose object lock configuration you want to create or replace.
The object lock configuration that you want to apply to the specified bucket.
Indicates whether this bucket has an object lock configuration enabled.
The object lock rule in place for the specified object.
The default retention period that you want to apply to new objects placed in the specified bucket.
The default object lock retention mode you want to apply to new objects placed in the specified bucket.
The number of days that you want to specify for the default retention period.
The number of years that you want to specify for the default retention period.
dict
Response Syntax
{
'RequestCharged': 'requester'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Places an Object Retention configuration on an object.
See also: AWS API Documentation
Request Syntax
response = client.put_object_retention(
Bucket='string',
Key='string',
Retention={
'Mode': 'GOVERNANCE'|'COMPLIANCE',
'RetainUntilDate': datetime(2015, 1, 1)
},
RequestPayer='requester',
VersionId='string',
BypassGovernanceRetention=True|False,
ContentMD5='string'
)
[REQUIRED]
The bucket that contains the object you want to apply this Object Retention configuration to.
[REQUIRED]
The key name for the object that you want to apply this Object Retention configuration to.
The container element for the Object Retention configuration.
Indicates the Retention mode for the specified object.
The date on which this object lock retention expires.
dict
Response Syntax
{
'RequestCharged': 'requester'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Sets the supplied tag-set to an object that already exists in a bucket
See also: AWS API Documentation
Request Syntax
response = client.put_object_tagging(
Bucket='string',
Key='string',
VersionId='string',
ContentMD5='string',
Tagging={
'TagSet': [
{
'Key': 'string',
'Value': 'string'
},
]
}
)
[REQUIRED]
Name of the tag.
Value of the tag.
dict
Response Syntax
{
'VersionId': 'string'
}
Response Structure
Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket.
See also: AWS API Documentation
Request Syntax
response = client.put_public_access_block(
Bucket='string',
ContentMD5='string',
PublicAccessBlockConfiguration={
'BlockPublicAcls': True|False,
'IgnorePublicAcls': True|False,
'BlockPublicPolicy': True|False,
'RestrictPublicBuckets': True|False
}
)
[REQUIRED]
The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to set.
[REQUIRED]
The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see The Meaning of "Public" in the Amazon Simple Storage Service Developer Guide .
Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:
Enabling this setting doesn't affect existing policies or ACLs.
Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.
Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.
Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.
Enabling this setting doesn't affect existing bucket policies.
Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.
Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.
None
Restores an archived copy of an object back into Amazon S3
See also: AWS API Documentation
Request Syntax
response = client.restore_object(
Bucket='string',
Key='string',
VersionId='string',
RestoreRequest={
'Days': 123,
'GlacierJobParameters': {
'Tier': 'Standard'|'Bulk'|'Expedited'
},
'Type': 'SELECT',
'Tier': 'Standard'|'Bulk'|'Expedited',
'Description': 'string',
'SelectParameters': {
'InputSerialization': {
'CSV': {
'FileHeaderInfo': 'USE'|'IGNORE'|'NONE',
'Comments': 'string',
'QuoteEscapeCharacter': 'string',
'RecordDelimiter': 'string',
'FieldDelimiter': 'string',
'QuoteCharacter': 'string',
'AllowQuotedRecordDelimiter': True|False
},
'CompressionType': 'NONE'|'GZIP'|'BZIP2',
'JSON': {
'Type': 'DOCUMENT'|'LINES'
},
'Parquet': {}
},
'ExpressionType': 'SQL',
'Expression': 'string',
'OutputSerialization': {
'CSV': {
'QuoteFields': 'ALWAYS'|'ASNEEDED',
'QuoteEscapeCharacter': 'string',
'RecordDelimiter': 'string',
'FieldDelimiter': 'string',
'QuoteCharacter': 'string'
},
'JSON': {
'RecordDelimiter': 'string'
}
}
},
'OutputLocation': {
'S3': {
'BucketName': 'string',
'Prefix': 'string',
'Encryption': {
'EncryptionType': 'AES256'|'aws:kms',
'KMSKeyId': 'string',
'KMSContext': 'string'
},
'CannedACL': 'private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
'AccessControlList': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'Tagging': {
'TagSet': [
{
'Key': 'string',
'Value': 'string'
},
]
},
'UserMetadata': [
{
'Name': 'string',
'Value': 'string'
},
],
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE'
}
}
},
RequestPayer='requester'
)
Lifetime of the active copy in days. Do not use with restores that specify OutputLocation.
Glacier related parameters pertaining to this job. Do not use with restores that specify OutputLocation.
Glacier retrieval tier at which the restore will be processed.
Type of restore request.
Glacier retrieval tier at which the restore will be processed.
The optional description for the job.
Describes the parameters for Select job types.
Describes the serialization format of the object.
Describes the serialization of a CSV-encoded object.
Describes the first line of input. Valid values: None, Ignore, Use.
The single character used to indicate a row should be ignored when present at the start of a row.
The single character used for escaping the quote character inside an already escaped value.
The value used to separate individual records.
The value used to separate individual fields in a record.
Value used for escaping where the field delimiter is part of the value.
Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.
Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.
Specifies JSON as object's input serialization format.
The type of JSON. Valid values: Document, Lines.
Specifies Parquet as object's input serialization format.
The type of the provided expression (e.g., SQL).
The expression that is used to query the object.
Describes how the results of the Select job are serialized.
Describes the serialization of CSV-encoded Select results.
Indicates whether or not all output fields should be quoted.
Th single character used for escaping the quote character inside an already escaped value.
The value used to separate individual records.
The value used to separate individual fields in a record.
The value used for escaping where the field delimiter is part of the value.
Specifies JSON as request's output serialization format.
The value used to separate individual records in the output.
Describes the location where the restore job's output is stored.
Describes an S3 location that will receive the results of the restore request.
The name of the bucket where the restore results will be placed.
The prefix that is prepended to the restore results for this request.
The server-side encryption algorithm used when storing job results in Amazon S3 (e.g., AES256, aws:kms).
If the encryption type is aws:kms, this optional value specifies the AWS KMS key ID to use for encryption of job results.
If the encryption type is aws:kms, this optional value can be used to specify the encryption context for the restore results.
The canned ACL to apply to the restore results.
A list of grants that control access to the staged results.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Specifies the permission given to the grantee.
The tag-set that is applied to the restore results.
Name of the tag.
Value of the tag.
A list of metadata to store with the restore results in S3.
A metadata key-value pair to store with an object.
The class of storage used to store the restore results.
dict
Response Syntax
{
'RequestCharged': 'requester',
'RestoreOutputPath': 'string'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
RestoreOutputPath (string) --
Indicates the path in the provided S3 output location where Select results will be restored to.
This operation filters the contents of an Amazon S3 object based on a simple Structured Query Language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON or CSV) of the object. Amazon S3 uses this to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.
See also: AWS API Documentation
Request Syntax
response = client.select_object_content(
Bucket='string',
Key='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
Expression='string',
ExpressionType='SQL',
RequestProgress={
'Enabled': True|False
},
InputSerialization={
'CSV': {
'FileHeaderInfo': 'USE'|'IGNORE'|'NONE',
'Comments': 'string',
'QuoteEscapeCharacter': 'string',
'RecordDelimiter': 'string',
'FieldDelimiter': 'string',
'QuoteCharacter': 'string',
'AllowQuotedRecordDelimiter': True|False
},
'CompressionType': 'NONE'|'GZIP'|'BZIP2',
'JSON': {
'Type': 'DOCUMENT'|'LINES'
},
'Parquet': {}
},
OutputSerialization={
'CSV': {
'QuoteFields': 'ALWAYS'|'ASNEEDED',
'QuoteEscapeCharacter': 'string',
'RecordDelimiter': 'string',
'FieldDelimiter': 'string',
'QuoteCharacter': 'string'
},
'JSON': {
'RecordDelimiter': 'string'
}
}
)
[REQUIRED]
The S3 bucket.
[REQUIRED]
The object key.
The SSE Customer Key MD5. For more information, see Server-Side Encryption (Using Customer-Provided Encryption Keys .
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
[REQUIRED]
The expression that is used to query the object.
[REQUIRED]
The type of the provided expression (for example., SQL).
Specifies if periodic request progress information should be enabled.
Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.
[REQUIRED]
Describes the format of the data in the object that is being queried.
Describes the serialization of a CSV-encoded object.
Describes the first line of input. Valid values: None, Ignore, Use.
The single character used to indicate a row should be ignored when present at the start of a row.
The single character used for escaping the quote character inside an already escaped value.
The value used to separate individual records.
The value used to separate individual fields in a record.
Value used for escaping where the field delimiter is part of the value.
Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.
Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.
Specifies JSON as object's input serialization format.
The type of JSON. Valid values: Document, Lines.
Specifies Parquet as object's input serialization format.
[REQUIRED]
Describes the format of the data that you want Amazon S3 to return in response.
Describes the serialization of CSV-encoded Select results.
Indicates whether or not all output fields should be quoted.
Th single character used for escaping the quote character inside an already escaped value.
The value used to separate individual records.
The value used to separate individual fields in a record.
The value used for escaping where the field delimiter is part of the value.
Specifies JSON as request's output serialization format.
The value used to separate individual records in the output.
dict
The response of this operation contains an EventStream member. When iterated the EventStream will yield events based on the structure below, where only one of the top level keys will be present for any given event.
Response Syntax
{
'Payload': EventStream({
'Records': {
'Payload': b'bytes'
},
'Stats': {
'Details': {
'BytesScanned': 123,
'BytesProcessed': 123,
'BytesReturned': 123
}
},
'Progress': {
'Details': {
'BytesScanned': 123,
'BytesProcessed': 123,
'BytesReturned': 123
}
},
'Cont': {},
'End': {}
})
}
Response Structure
(dict) --
Payload (EventStream) --
Records (dict) --
The Records Event.
Payload (bytes) --
The byte array of partial, one or more result records.
Stats (dict) --
The Stats Event.
Details (dict) --
The Stats event details.
BytesScanned (integer) --
The total number of object bytes scanned.
BytesProcessed (integer) --
The total number of uncompressed object bytes processed.
BytesReturned (integer) --
The total number of bytes of records payload data returned.
Progress (dict) --
The Progress Event.
Details (dict) --
The Progress event details.
BytesScanned (integer) --
The current number of object bytes scanned.
BytesProcessed (integer) --
The current number of uncompressed object bytes processed.
BytesReturned (integer) --
The current number of bytes of records payload data returned.
Cont (dict) --
The Continuation Event.
End (dict) --
The End Event.
Upload a file to an S3 object.
Usage:
import boto3
s3 = boto3.resource('s3')
s3.meta.client.upload_file('/tmp/hello.txt', 'mybucket', 'hello.txt')
Similar behavior as S3Transfer's upload_file() method, except that parameters are capitalized. Detailed examples can be found at S3Transfer's Usage.
Upload a file-like object to S3.
The file-like object must be in binary mode.
This is a managed transfer which will perform a multipart upload in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.client('s3')
with open('filename', 'rb') as data:
s3.upload_fileobj(data, 'mybucket', 'mykey')
Uploads a part in a multipart upload.
Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
See also: AWS API Documentation
Request Syntax
response = client.upload_part(
Body=b'bytes'|file,
Bucket='string',
ContentLength=123,
ContentMD5='string',
Key='string',
PartNumber=123,
UploadId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester'
)
[REQUIRED]
Name of the bucket to which the multipart upload was initiated.
[REQUIRED]
Object key for which the multipart upload was initiated.
[REQUIRED]
Part number of part being uploaded. This is a positive integer between 1 and 10,000.
[REQUIRED]
Upload ID identifying the multipart upload whose part is being uploaded.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'ServerSideEncryption': 'AES256'|'aws:kms',
'ETag': 'string',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
ETag (string) --
Entity tag for the uploaded object.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Uploads a part by copying data from an existing object as data source.
See also: AWS API Documentation
Request Syntax
response = client.upload_part_copy(
Bucket='string',
CopySource='string' or {'Bucket': 'string', 'Key': 'string', 'VersionId': 'string'},
CopySourceIfMatch='string',
CopySourceIfModifiedSince=datetime(2015, 1, 1),
CopySourceIfNoneMatch='string',
CopySourceIfUnmodifiedSince=datetime(2015, 1, 1),
CopySourceRange='string',
Key='string',
PartNumber=123,
UploadId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
CopySourceSSECustomerAlgorithm='string',
CopySourceSSECustomerKey='string',
RequestPayer='requester'
)
[REQUIRED]
Part number of part being copied. This is a positive integer between 1 and 10,000.
[REQUIRED]
Upload ID identifying the multipart upload whose part is being copied.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'CopySourceVersionId': 'string',
'CopyPartResult': {
'ETag': 'string',
'LastModified': datetime(2015, 1, 1)
},
'ServerSideEncryption': 'AES256'|'aws:kms',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
CopySourceVersionId (string) --
The version of the source object that was copied, if you have enabled versioning on the source bucket.
CopyPartResult (dict) --
ETag (string) --
Entity tag of the object.
LastModified (datetime) --
Date and time at which the object was uploaded.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
The available paginators are:
paginator = client.get_paginator('list_multipart_uploads')
Creates an iterator that will paginate through responses from S3.Client.list_multipart_uploads().
See also: AWS API Documentation
Request Syntax
response_iterator = paginator.paginate(
Bucket='string',
Delimiter='string',
EncodingType='url',
Prefix='string',
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
A dictionary that provides parameters to control pagination.
The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination.
The size of each page.
A token to specify where to start paginating. This is the NextToken from a previous response.
dict
Response Syntax
{
'Bucket': 'string',
'KeyMarker': 'string',
'UploadIdMarker': 'string',
'Prefix': 'string',
'Delimiter': 'string',
'MaxUploads': 123,
'IsTruncated': True|False,
'Uploads': [
{
'UploadId': 'string',
'Key': 'string',
'Initiated': datetime(2015, 1, 1),
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'Owner': {
'DisplayName': 'string',
'ID': 'string'
},
'Initiator': {
'ID': 'string',
'DisplayName': 'string'
}
},
],
'CommonPrefixes': [
{
'Prefix': 'string'
},
],
'EncodingType': 'url',
'NextToken': 'string'
}
Response Structure
(dict) --
Bucket (string) --
Name of the bucket to which the multipart upload was initiated.
KeyMarker (string) --
The key at or after which the listing began.
UploadIdMarker (string) --
Upload ID after which listing began.
Prefix (string) --
When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.
Delimiter (string) --
MaxUploads (integer) --
Maximum number of multipart uploads that could have been included in the response.
IsTruncated (boolean) --
Indicates whether the returned list of multipart uploads is truncated. A value of true indicates that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the limit allowed or specified by max uploads.
Uploads (list) --
(dict) --
UploadId (string) --
Upload ID that identifies the multipart upload.
Key (string) --
Key of the object for which the multipart upload was initiated.
Initiated (datetime) --
Date and time at which the multipart upload was initiated.
StorageClass (string) --
The class of storage used to store the object.
Owner (dict) --
Initiator (dict) --
Identifies who initiated the multipart upload.
ID (string) --
If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.
DisplayName (string) --
Name of the Principal.
CommonPrefixes (list) --
EncodingType (string) --
Encoding type used by Amazon S3 to encode object keys in the response.
NextToken (string) --
A token to resume pagination.
paginator = client.get_paginator('list_object_versions')
Creates an iterator that will paginate through responses from S3.Client.list_object_versions().
See also: AWS API Documentation
Request Syntax
response_iterator = paginator.paginate(
Bucket='string',
Delimiter='string',
EncodingType='url',
Prefix='string',
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
A dictionary that provides parameters to control pagination.
The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination.
The size of each page.
A token to specify where to start paginating. This is the NextToken from a previous response.
dict
Response Syntax
{
'IsTruncated': True|False,
'KeyMarker': 'string',
'VersionIdMarker': 'string',
'Versions': [
{
'ETag': 'string',
'Size': 123,
'StorageClass': 'STANDARD',
'Key': 'string',
'VersionId': 'string',
'IsLatest': True|False,
'LastModified': datetime(2015, 1, 1),
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
],
'DeleteMarkers': [
{
'Owner': {
'DisplayName': 'string',
'ID': 'string'
},
'Key': 'string',
'VersionId': 'string',
'IsLatest': True|False,
'LastModified': datetime(2015, 1, 1)
},
],
'Name': 'string',
'Prefix': 'string',
'Delimiter': 'string',
'MaxKeys': 123,
'CommonPrefixes': [
{
'Prefix': 'string'
},
],
'EncodingType': 'url',
'NextToken': 'string'
}
Response Structure
(dict) --
IsTruncated (boolean) --
A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.
KeyMarker (string) --
Marks the last Key returned in a truncated response.
VersionIdMarker (string) --
Versions (list) --
(dict) --
ETag (string) --
Size (integer) --
Size in bytes of the object.
StorageClass (string) --
The class of storage used to store the object.
Key (string) --
The object key.
VersionId (string) --
Version ID of an object.
IsLatest (boolean) --
Specifies whether the object is (true) or is not (false) the latest version of an object.
LastModified (datetime) --
Date and time the object was last modified.
Owner (dict) --
DeleteMarkers (list) --
(dict) --
Owner (dict) --
Key (string) --
The object key.
VersionId (string) --
Version ID of an object.
IsLatest (boolean) --
Specifies whether the object is (true) or is not (false) the latest version of an object.
LastModified (datetime) --
Date and time the object was last modified.
Name (string) --
Prefix (string) --
Delimiter (string) --
MaxKeys (integer) --
CommonPrefixes (list) --
EncodingType (string) --
Encoding type used by Amazon S3 to encode object keys in the response.
NextToken (string) --
A token to resume pagination.
paginator = client.get_paginator('list_objects')
Creates an iterator that will paginate through responses from S3.Client.list_objects().
See also: AWS API Documentation
Request Syntax
response_iterator = paginator.paginate(
Bucket='string',
Delimiter='string',
EncodingType='url',
Prefix='string',
RequestPayer='requester',
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
A dictionary that provides parameters to control pagination.
The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination.
The size of each page.
A token to specify where to start paginating. This is the NextToken from a previous response.
dict
Response Syntax
{
'IsTruncated': True|False,
'Marker': 'string',
'NextMarker': 'string',
'Contents': [
{
'Key': 'string',
'LastModified': datetime(2015, 1, 1),
'ETag': 'string',
'Size': 123,
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE',
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
],
'Name': 'string',
'Prefix': 'string',
'Delimiter': 'string',
'MaxKeys': 123,
'CommonPrefixes': [
{
'Prefix': 'string'
},
],
'EncodingType': 'url',
'NextToken': 'string'
}
Response Structure
(dict) --
IsTruncated (boolean) --
A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.
Marker (string) --
NextMarker (string) --
When response is truncated (the IsTruncated element value in the response is true), you can use the key name in this field as marker in the subsequent request to get next set of objects. Amazon S3 lists objects in alphabetical order Note: This element is returned only if you have delimiter request parameter specified. If response does not include the NextMaker and it is truncated, you can use the value of the last Key in the response as the marker in the subsequent request to get the next set of object keys.
Contents (list) --
(dict) --
Key (string) --
LastModified (datetime) --
ETag (string) --
Size (integer) --
StorageClass (string) --
The class of storage used to store the object.
Owner (dict) --
Name (string) --
Prefix (string) --
Delimiter (string) --
MaxKeys (integer) --
CommonPrefixes (list) --
EncodingType (string) --
Encoding type used by Amazon S3 to encode object keys in the response.
NextToken (string) --
A token to resume pagination.
paginator = client.get_paginator('list_objects_v2')
Creates an iterator that will paginate through responses from S3.Client.list_objects_v2().
See also: AWS API Documentation
Request Syntax
response_iterator = paginator.paginate(
Bucket='string',
Delimiter='string',
EncodingType='url',
Prefix='string',
FetchOwner=True|False,
StartAfter='string',
RequestPayer='requester',
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
[REQUIRED]
Name of the bucket to list.
A dictionary that provides parameters to control pagination.
The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination.
The size of each page.
A token to specify where to start paginating. This is the NextToken from a previous response.
dict
Response Syntax
{
'IsTruncated': True|False,
'Contents': [
{
'Key': 'string',
'LastModified': datetime(2015, 1, 1),
'ETag': 'string',
'Size': 123,
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE',
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
],
'Name': 'string',
'Prefix': 'string',
'Delimiter': 'string',
'MaxKeys': 123,
'CommonPrefixes': [
{
'Prefix': 'string'
},
],
'EncodingType': 'url',
'KeyCount': 123,
'ContinuationToken': 'string',
'StartAfter': 'string',
'NextToken': 'string'
}
Response Structure
(dict) --
IsTruncated (boolean) --
A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.
Contents (list) --
Metadata about each object returned.
(dict) --
Key (string) --
LastModified (datetime) --
ETag (string) --
Size (integer) --
StorageClass (string) --
The class of storage used to store the object.
Owner (dict) --
Name (string) --
Name of the bucket to list.
Prefix (string) --
Limits the response to keys that begin with the specified prefix.
Delimiter (string) --
A delimiter is a character you use to group keys.
MaxKeys (integer) --
Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more.
CommonPrefixes (list) --
CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by delimiter
EncodingType (string) --
Encoding type used by Amazon S3 to encode object keys in the response.
KeyCount (integer) --
KeyCount is the number of keys returned with this request. KeyCount will always be less than equals to MaxKeys field. Say you ask for 50 keys, your result will include less than equals 50 keys
ContinuationToken (string) --
ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key
StartAfter (string) --
StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. StartAfter can be any key in the bucket
NextToken (string) --
A token to resume pagination.
paginator = client.get_paginator('list_parts')
Creates an iterator that will paginate through responses from S3.Client.list_parts().
See also: AWS API Documentation
Request Syntax
response_iterator = paginator.paginate(
Bucket='string',
Key='string',
UploadId='string',
RequestPayer='requester',
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
[REQUIRED]
Upload ID identifying the multipart upload whose parts are being listed.
A dictionary that provides parameters to control pagination.
The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination.
The size of each page.
A token to specify where to start paginating. This is the NextToken from a previous response.
dict
Response Syntax
{
'AbortDate': datetime(2015, 1, 1),
'AbortRuleId': 'string',
'Bucket': 'string',
'Key': 'string',
'UploadId': 'string',
'PartNumberMarker': 123,
'MaxParts': 123,
'IsTruncated': True|False,
'Parts': [
{
'PartNumber': 123,
'LastModified': datetime(2015, 1, 1),
'ETag': 'string',
'Size': 123
},
],
'Initiator': {
'ID': 'string',
'DisplayName': 'string'
},
'Owner': {
'DisplayName': 'string',
'ID': 'string'
},
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'RequestCharged': 'requester',
'NextToken': 'string'
}
Response Structure
(dict) --
AbortDate (datetime) --
Date when multipart upload will become eligible for abort operation by lifecycle.
AbortRuleId (string) --
Id of the lifecycle rule that makes a multipart upload eligible for abort operation.
Bucket (string) --
Name of the bucket to which the multipart upload was initiated.
Key (string) --
Object key for which the multipart upload was initiated.
UploadId (string) --
Upload ID identifying the multipart upload whose parts are being listed.
PartNumberMarker (integer) --
Part number after which listing begins.
MaxParts (integer) --
Maximum number of parts that were allowed in the response.
IsTruncated (boolean) --
Indicates whether the returned list of parts is truncated.
Parts (list) --
(dict) --
PartNumber (integer) --
Part number identifying the part. This is a positive integer between 1 and 10,000.
LastModified (datetime) --
Date and time at which the part was uploaded.
ETag (string) --
Entity tag returned when the part was uploaded.
Size (integer) --
Size in bytes of the uploaded part data.
Initiator (dict) --
Identifies who initiated the multipart upload.
ID (string) --
If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.
DisplayName (string) --
Name of the Principal.
Owner (dict) --
StorageClass (string) --
The class of storage used to store the object.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
NextToken (string) --
A token to resume pagination.
The available waiters are:
waiter = client.get_waiter('bucket_exists')
Polls S3.Client.head_bucket() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
waiter.wait(
Bucket='string',
WaiterConfig={
'Delay': 123,
'MaxAttempts': 123
}
)
A dictionary that provides parameters to control waiting behavior.
The amount of time in seconds to wait between attempts. Default: 5
The maximum number of attempts to be made. Default: 20
None
waiter = client.get_waiter('bucket_not_exists')
Polls S3.Client.head_bucket() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
waiter.wait(
Bucket='string',
WaiterConfig={
'Delay': 123,
'MaxAttempts': 123
}
)
A dictionary that provides parameters to control waiting behavior.
The amount of time in seconds to wait between attempts. Default: 5
The maximum number of attempts to be made. Default: 20
None
waiter = client.get_waiter('object_exists')
Polls S3.Client.head_object() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
waiter.wait(
Bucket='string',
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Key='string',
Range='string',
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123,
WaiterConfig={
'Delay': 123,
'MaxAttempts': 123
}
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
A dictionary that provides parameters to control waiting behavior.
The amount of time in seconds to wait between attempts. Default: 5
The maximum number of attempts to be made. Default: 20
None
waiter = client.get_waiter('object_not_exists')
Polls S3.Client.head_object() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
waiter.wait(
Bucket='string',
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Key='string',
Range='string',
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123,
WaiterConfig={
'Delay': 123,
'MaxAttempts': 123
}
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
A dictionary that provides parameters to control waiting behavior.
The amount of time in seconds to wait between attempts. Default: 5
The maximum number of attempts to be made. Default: 20
None
A resource representing Amazon Simple Storage Service (S3):
import boto3
s3 = boto3.resource('s3')
These are the resource's available actions:
These are the resource's available sub-resources:
These are the resource's available collections:
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Creates a new bucket.
See also: AWS API Documentation
Request Syntax
bucket = s3.create_bucket(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read',
Bucket='string',
CreateBucketConfiguration={
'LocationConstraint': 'EU'|'eu-west-1'|'us-west-1'|'us-west-2'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'sa-east-1'|'cn-north-1'|'eu-central-1'
},
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWrite='string',
GrantWriteACP='string',
ObjectLockEnabledForBucket=True|False
)
Specifies the region where the bucket will be created. If you don't specify a region, the bucket is created in US East (N. Virginia) Region (us-east-1).
s3.Bucket
Bucket resource
Returns a list of all the available sub-resources for this Resource.
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
Creates a Bucket resource.:
bucket = s3.Bucket('name')
Creates a BucketAcl resource.:
bucket_acl = s3.BucketAcl('bucket_name')
Creates a BucketCors resource.:
bucket_cors = s3.BucketCors('bucket_name')
Creates a BucketLifecycle resource.:
bucket_lifecycle = s3.BucketLifecycle('bucket_name')
Creates a BucketLifecycleConfiguration resource.:
bucket_lifecycle_configuration = s3.BucketLifecycleConfiguration('bucket_name')
Creates a BucketLogging resource.:
bucket_logging = s3.BucketLogging('bucket_name')
Creates a BucketNotification resource.:
bucket_notification = s3.BucketNotification('bucket_name')
Creates a BucketPolicy resource.:
bucket_policy = s3.BucketPolicy('bucket_name')
Creates a BucketRequestPayment resource.:
bucket_request_payment = s3.BucketRequestPayment('bucket_name')
Creates a BucketTagging resource.:
bucket_tagging = s3.BucketTagging('bucket_name')
Creates a BucketVersioning resource.:
bucket_versioning = s3.BucketVersioning('bucket_name')
Creates a BucketWebsite resource.:
bucket_website = s3.BucketWebsite('bucket_name')
Creates a MultipartUpload resource.:
multipart_upload = s3.MultipartUpload('bucket_name','object_key','id')
A MultipartUpload resource
Creates a MultipartUploadPart resource.:
multipart_upload_part = s3.MultipartUploadPart('bucket_name','object_key','multipart_upload_id','part_number')
A MultipartUploadPart resource
Creates a Object resource.:
object = s3.Object('bucket_name','key')
A Object resource
Creates a ObjectAcl resource.:
object_acl = s3.ObjectAcl('bucket_name','object_key')
A ObjectAcl resource
Creates a ObjectSummary resource.:
object_summary = s3.ObjectSummary('bucket_name','key')
A ObjectSummary resource
Creates a ObjectVersion resource.:
object_version = s3.ObjectVersion('bucket_name','object_key','id')
A ObjectVersion resource
Collections
Collections provide an interface to iterate over and manipulate groups of resources. For more information about collections refer to the Resources Introduction Guide.
A collection of Bucket resources
Creates an iterable of all Bucket resources in the collection.
See also: AWS API Documentation
Request Syntax
bucket_iterator = s3.buckets.all()
Creates an iterable of all Bucket resources in the collection filtered by kwargs passed to method.
See also: AWS API Documentation
Request Syntax
bucket_iterator = s3.buckets.filter()
Creates an iterable up to a specified amount of Bucket resources in the collection.
See also: AWS API Documentation
Request Syntax
bucket_iterator = s3.buckets.limit()
Creates an iterable of all Bucket resources in the collection, but limits the number of items returned by each service call by the specified amount.
See also: AWS API Documentation
Request Syntax
bucket_iterator = s3.buckets.page_size()
A resource representing an Amazon Simple Storage Service (S3) Bucket:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
These are the resource's available collections:
These are the resource's available waiters:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The Bucket's name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(datetime) --
Date the bucket was created.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Copy an object from one S3 location to an object in this bucket.
This is a managed transfer which will perform a multipart copy in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.resource('s3')
copy_source = {
'Bucket': 'mybucket',
'Key': 'mykey'
}
bucket = s3.Bucket('otherbucket')
bucket.copy(copy_source, 'otherkey')
Creates a new bucket.
See also: AWS API Documentation
Request Syntax
response = bucket.create(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read',
CreateBucketConfiguration={
'LocationConstraint': 'EU'|'eu-west-1'|'us-west-1'|'us-west-2'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'sa-east-1'|'cn-north-1'|'eu-central-1'
},
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWrite='string',
GrantWriteACP='string',
ObjectLockEnabledForBucket=True|False
)
Specifies the region where the bucket will be created. If you don't specify a region, the bucket is created in US East (N. Virginia) Region (us-east-1).
dict
Response Syntax
{
'Location': 'string'
}
Response Structure
Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.
See also: AWS API Documentation
Request Syntax
response = bucket.delete()
This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.
See also: AWS API Documentation
Request Syntax
response = bucket.delete_objects(
Delete={
'Objects': [
{
'Key': 'string',
'VersionId': 'string'
},
],
'Quiet': True|False
},
MFA='string',
RequestPayer='requester',
BypassGovernanceRetention=True|False
)
[REQUIRED]
Key name of the object to delete.
VersionId for the specific version of the object to delete.
Element to enable quiet mode for the request. When you add this element, you must set its value to true.
dict
Response Syntax
{
'Deleted': [
{
'Key': 'string',
'VersionId': 'string',
'DeleteMarker': True|False,
'DeleteMarkerVersionId': 'string'
},
],
'RequestCharged': 'requester',
'Errors': [
{
'Key': 'string',
'VersionId': 'string',
'Code': 'string',
'Message': 'string'
},
]
}
Response Structure
(dict) --
Deleted (list) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Errors (list) --
Download an S3 object to a file.
Usage:
import boto3
s3 = boto3.resource('s3')
s3.Bucket('mybucket').download_file('hello.txt', '/tmp/hello.txt')
Similar behavior as S3Transfer's download_file() method, except that parameters are capitalized. Detailed examples can be found at S3Transfer's Usage.
Download an object from this bucket to a file-like-object.
The file-like object must be in binary mode.
This is a managed transfer which will perform a multipart download in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('mybucket')
with open('filename', 'wb') as data:
bucket.download_fileobj('mykey', data)
Returns a list of all the available sub-resources for this Resource.
Calls s3.Client.list_buckets() to update the attributes of the Bucket resource.
Adds an object to a bucket.
See also: AWS API Documentation
Request Syntax
object = bucket.put_object(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
Body=b'bytes'|file,
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentLength=123,
ContentMD5='string',
ContentType='string',
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Key='string',
Metadata={
'string': 'string'
},
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
[REQUIRED]
Object key for which the PUT operation was initiated.
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
s3.Object
Object resource
Upload a file to an S3 object.
Usage:
import boto3
s3 = boto3.resource('s3')
s3.Bucket('mybucket').upload_file('/tmp/hello.txt', 'hello.txt')
Similar behavior as S3Transfer's upload_file() method, except that parameters are capitalized. Detailed examples can be found at S3Transfer's Usage.
Upload a file-like object to this bucket.
The file-like object must be in binary mode.
This is a managed transfer which will perform a multipart upload in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('mybucket')
with open('filename', 'rb') as data:
bucket.upload_fileobj(data, 'mykey')
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
Creates a BucketAcl resource.:
bucket_acl = bucket.Acl()
Creates a BucketCors resource.:
bucket_cors = bucket.Cors()
Creates a BucketLifecycle resource.:
bucket_lifecycle = bucket.Lifecycle()
Creates a BucketLifecycleConfiguration resource.:
bucket_lifecycle_configuration = bucket.LifecycleConfiguration()
Creates a BucketLogging resource.:
bucket_logging = bucket.Logging()
Creates a BucketNotification resource.:
bucket_notification = bucket.Notification()
Creates a Object resource.:
object = bucket.Object('key')
Creates a BucketPolicy resource.:
bucket_policy = bucket.Policy()
Creates a BucketRequestPayment resource.:
bucket_request_payment = bucket.RequestPayment()
Creates a BucketTagging resource.:
bucket_tagging = bucket.Tagging()
Creates a BucketVersioning resource.:
bucket_versioning = bucket.Versioning()
Creates a BucketWebsite resource.:
bucket_website = bucket.Website()
Collections
Collections provide an interface to iterate over and manipulate groups of resources. For more information about collections refer to the Resources Introduction Guide.
A collection of MultipartUpload resources
Creates an iterable of all MultipartUpload resources in the collection.
See also: AWS API Documentation
Request Syntax
multipart_upload_iterator = bucket.multipart_uploads.all()
Creates an iterable of all MultipartUpload resources in the collection filtered by kwargs passed to method.
See also: AWS API Documentation
Request Syntax
multipart_upload_iterator = bucket.multipart_uploads.filter(
Delimiter='string',
EncodingType='url',
KeyMarker='string',
MaxUploads=123,
Prefix='string',
UploadIdMarker='string'
)
list(s3.MultipartUpload)
A list of MultipartUpload resources
Creates an iterable up to a specified amount of MultipartUpload resources in the collection.
See also: AWS API Documentation
Request Syntax
multipart_upload_iterator = bucket.multipart_uploads.limit(
count=123
)
Creates an iterable of all MultipartUpload resources in the collection, but limits the number of items returned by each service call by the specified amount.
See also: AWS API Documentation
Request Syntax
multipart_upload_iterator = bucket.multipart_uploads.page_size(
count=123
)
A collection of ObjectVersion resources
Creates an iterable of all ObjectVersion resources in the collection.
See also: AWS API Documentation
Request Syntax
object_version_iterator = bucket.object_versions.all()
This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.
See also: AWS API Documentation
Request Syntax
response = bucket.object_versions.delete(
MFA='string',
RequestPayer='requester',
BypassGovernanceRetention=True|False
)
dict
Response Syntax
{
'Deleted': [
{
'Key': 'string',
'VersionId': 'string',
'DeleteMarker': True|False,
'DeleteMarkerVersionId': 'string'
},
],
'RequestCharged': 'requester',
'Errors': [
{
'Key': 'string',
'VersionId': 'string',
'Code': 'string',
'Message': 'string'
},
]
}
Response Structure
(dict) --
Deleted (list) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Errors (list) --
Creates an iterable of all ObjectVersion resources in the collection filtered by kwargs passed to method.
See also: AWS API Documentation
Request Syntax
object_version_iterator = bucket.object_versions.filter(
Delimiter='string',
EncodingType='url',
KeyMarker='string',
MaxKeys=123,
Prefix='string',
VersionIdMarker='string'
)
list(s3.ObjectVersion)
A list of ObjectVersion resources
Creates an iterable up to a specified amount of ObjectVersion resources in the collection.
See also: AWS API Documentation
Request Syntax
object_version_iterator = bucket.object_versions.limit(
count=123
)
Creates an iterable of all ObjectVersion resources in the collection, but limits the number of items returned by each service call by the specified amount.
See also: AWS API Documentation
Request Syntax
object_version_iterator = bucket.object_versions.page_size(
count=123
)
A collection of ObjectSummary resources
Creates an iterable of all ObjectSummary resources in the collection.
See also: AWS API Documentation
Request Syntax
object_summary_iterator = bucket.objects.all()
This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.
See also: AWS API Documentation
Request Syntax
response = bucket.objects.delete(
MFA='string',
RequestPayer='requester',
BypassGovernanceRetention=True|False
)
dict
Response Syntax
{
'Deleted': [
{
'Key': 'string',
'VersionId': 'string',
'DeleteMarker': True|False,
'DeleteMarkerVersionId': 'string'
},
],
'RequestCharged': 'requester',
'Errors': [
{
'Key': 'string',
'VersionId': 'string',
'Code': 'string',
'Message': 'string'
},
]
}
Response Structure
(dict) --
Deleted (list) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Errors (list) --
Creates an iterable of all ObjectSummary resources in the collection filtered by kwargs passed to method.
See also: AWS API Documentation
Request Syntax
object_summary_iterator = bucket.objects.filter(
Delimiter='string',
EncodingType='url',
Marker='string',
MaxKeys=123,
Prefix='string',
RequestPayer='requester'
)
list(s3.ObjectSummary)
A list of ObjectSummary resources
Creates an iterable up to a specified amount of ObjectSummary resources in the collection.
See also: AWS API Documentation
Request Syntax
object_summary_iterator = bucket.objects.limit(
count=123
)
Creates an iterable of all ObjectSummary resources in the collection, but limits the number of items returned by each service call by the specified amount.
See also: AWS API Documentation
Request Syntax
object_summary_iterator = bucket.objects.page_size(
count=123
)
Waiters
Waiters provide an interface to wait for a resource to reach a specific state. For more information about waiters refer to the Resources Introduction Guide.
Waits until this Bucket is exists. This method calls S3.Waiter.bucket_exists.wait() which polls. S3.Client.head_bucket() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
bucket.wait_until_exists()
Waits until this Bucket is not exists. This method calls S3.Waiter.bucket_not_exists.wait() which polls. S3.Client.head_bucket() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
bucket.wait_until_not_exists()
A resource representing an Amazon Simple Storage Service (S3) BucketAcl:
import boto3
s3 = boto3.resource('s3')
bucket_acl = s3.BucketAcl('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketAcl's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(list) --
A list of grants.
(dict) --
Grantee (dict) --
DisplayName (string) --
Screen name of the grantee.
EmailAddress (string) --
Email address of the grantee.
ID (string) --
The canonical user ID of the grantee.
Type (string) --
Type of grantee
URI (string) --
URI of the grantee group.
Permission (string) --
Specifies the permission given to the grantee.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_acl() to update the attributes of the BucketAcl resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_acl.load()
Sets the permissions on a bucket using access control lists (ACL).
See also: AWS API Documentation
Request Syntax
response = bucket_acl.put(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read',
AccessControlPolicy={
'Grants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWrite='string',
GrantWriteACP='string'
)
Contains the elements that set the ACL permissions for an object per grantee.
A list of grants.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Specifies the permission given to the grantee.
Container for the bucket owner's display name and ID.
None
Calls S3.Client.get_bucket_acl() to update the attributes of the BucketAcl resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_acl.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketCors:
import boto3
s3 = boto3.resource('s3')
bucket_cors = s3.BucketCors('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketCors's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(list) --
(dict) --
Specifies a cross-origin access rule for an Amazon S3 bucket.
AllowedHeaders (list) --
Headers that are specified in the Access-Control-Request-Headers header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed.
AllowedMethods (list) --
An HTTP method that you allow the origin to execute. Valid values are GET , PUT , HEAD , POST , and DELETE .
AllowedOrigins (list) --
One or more origins you want customers to be able to access the bucket from.
ExposeHeaders (list) --
One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
MaxAgeSeconds (integer) --
The time in seconds that your browser is to cache the preflight response for the specified resource.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Deletes the CORS configuration information set for the bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_cors.delete()
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_cors() to update the attributes of the BucketCors resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_cors.load()
Sets the CORS configuration for a bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_cors.put(
CORSConfiguration={
'CORSRules': [
{
'AllowedHeaders': [
'string',
],
'AllowedMethods': [
'string',
],
'AllowedOrigins': [
'string',
],
'ExposeHeaders': [
'string',
],
'MaxAgeSeconds': 123
},
]
},
)
[REQUIRED]
A set of allowed origins and methods.
Specifies a cross-origin access rule for an Amazon S3 bucket.
Headers that are specified in the Access-Control-Request-Headers header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed.
An HTTP method that you allow the origin to execute. Valid values are GET , PUT , HEAD , POST , and DELETE .
One or more origins you want customers to be able to access the bucket from.
One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
The time in seconds that your browser is to cache the preflight response for the specified resource.
Calls S3.Client.get_bucket_cors() to update the attributes of the BucketCors resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_cors.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketLifecycle:
import boto3
s3 = boto3.resource('s3')
bucket_lifecycle = s3.BucketLifecycle('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketLifecycle's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(list) --
(dict) --
Specifies lifecycle rules for an Amazon S3 bucket. For more information, see PUT Bucket lifecycle in the Amazon Simple Storage Service API Reference .
Expiration (dict) --
Date (datetime) --
Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
Days (integer) --
Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
ExpiredObjectDeleteMarker (boolean) --
Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
ID (string) --
Unique identifier for the rule. The value can't be longer than 255 characters.
Prefix (string) --
Object key prefix that identifies one or more objects to which this rule applies.
Status (string) --
If Enabled , the rule is currently being applied. If Disabled , the rule is not currently being applied.
Transition (dict) --
Date (datetime) --
Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
Days (integer) --
Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
StorageClass (string) --
The storage class to which you want the object to transition.
NoncurrentVersionTransition (dict) --
NoncurrentDays (integer) --
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide .
StorageClass (string) --
The class of storage used to store the object.
NoncurrentVersionExpiration (dict) --
NoncurrentDays (integer) --
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
AbortIncompleteMultipartUpload (dict) --
DaysAfterInitiation (integer) --
Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Deletes the lifecycle configuration from the bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_lifecycle.delete()
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_lifecycle() to update the attributes of the BucketLifecycle resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_lifecycle.load()
No longer used, see the PutBucketLifecycleConfiguration operation.
Danger
This operation is deprecated and may not function as expected. This operation should not be used going forward and is only kept for the purpose of backwards compatiblity.
See also: AWS API Documentation
Request Syntax
response = bucket_lifecycle.put(
LifecycleConfiguration={
'Rules': [
{
'Expiration': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'ExpiredObjectDeleteMarker': True|False
},
'ID': 'string',
'Prefix': 'string',
'Status': 'Enabled'|'Disabled',
'Transition': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
'NoncurrentVersionTransition': {
'NoncurrentDays': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
'NoncurrentVersionExpiration': {
'NoncurrentDays': 123
},
'AbortIncompleteMultipartUpload': {
'DaysAfterInitiation': 123
}
},
]
}
)
Specifies lifecycle rules for an Amazon S3 bucket. For more information, see PUT Bucket lifecycle in the Amazon Simple Storage Service API Reference .
Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
Unique identifier for the rule. The value can't be longer than 255 characters.
Object key prefix that identifies one or more objects to which this rule applies.
If Enabled , the rule is currently being applied. If Disabled , the rule is not currently being applied.
Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
The storage class to which you want the object to transition.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide .
The class of storage used to store the object.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
Calls S3.Client.get_bucket_lifecycle() to update the attributes of the BucketLifecycle resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_lifecycle.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketLifecycleConfiguration:
import boto3
s3 = boto3.resource('s3')
bucket_lifecycle_configuration = s3.BucketLifecycleConfiguration('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketLifecycleConfiguration's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(list) --
(dict) --
Expiration (dict) --
Date (datetime) --
Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
Days (integer) --
Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
ExpiredObjectDeleteMarker (boolean) --
Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
ID (string) --
Unique identifier for the rule. The value cannot be longer than 255 characters.
Prefix (string) --
Prefix identifying one or more objects to which the rule applies. This is No longer used; use Filter instead.
Filter (dict) --
Prefix (string) --
Prefix identifying one or more objects to which the rule applies.
Tag (dict) --
This tag must exist in the object's tag set in order for the rule to apply.
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
And (dict) --
Prefix (string) --
Tags (list) --
All of these tags must exist in the object's tag set in order for the rule to apply.
(dict) --
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
Status (string) --
If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.
Transitions (list) --
(dict) --
Specifies when an object transitions to a specified storage class.
Date (datetime) --
Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
Days (integer) --
Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
StorageClass (string) --
The storage class to which you want the object to transition.
NoncurrentVersionTransitions (list) --
(dict) --
Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA , ONEZONE_IA , INTELLIGENT_TIERING , GLACIER , or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA , ONEZONE_IA , INTELLIGENT_TIERING , GLACIER , or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.
NoncurrentDays (integer) --
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide .
StorageClass (string) --
The class of storage used to store the object.
NoncurrentVersionExpiration (dict) --
NoncurrentDays (integer) --
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
AbortIncompleteMultipartUpload (dict) --
DaysAfterInitiation (integer) --
Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Deletes the lifecycle configuration from the bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_lifecycle_configuration.delete()
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_lifecycle_configuration() to update the attributes of the BucketLifecycleConfiguration resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_lifecycle_configuration.load()
Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it.
See also: AWS API Documentation
Request Syntax
response = bucket_lifecycle_configuration.put(
LifecycleConfiguration={
'Rules': [
{
'Expiration': {
'Date': datetime(2015, 1, 1),
'Days': 123,
'ExpiredObjectDeleteMarker': True|False
},
'ID': 'string',
'Prefix': 'string',
'Filter': {
'Prefix': 'string',
'Tag': {
'Key': 'string',
'Value': 'string'
},
'And': {
'Prefix': 'string',
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
}
},
'Status': 'Enabled'|'Disabled',
'Transitions': [
{
'Date': datetime(2015, 1, 1),
'Days': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
],
'NoncurrentVersionTransitions': [
{
'NoncurrentDays': 123,
'StorageClass': 'GLACIER'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'DEEP_ARCHIVE'
},
],
'NoncurrentVersionExpiration': {
'NoncurrentDays': 123
},
'AbortIncompleteMultipartUpload': {
'DaysAfterInitiation': 123
}
},
]
}
)
A lifecycle rule for individual objects in an Amazon S3 bucket.
Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
Unique identifier for the rule. The value cannot be longer than 255 characters.
Prefix identifying one or more objects to which the rule applies. This is No longer used; use Filter instead.
Prefix identifying one or more objects to which the rule applies.
This tag must exist in the object's tag set in order for the rule to apply.
Name of the tag.
Value of the tag.
All of these tags must exist in the object's tag set in order for the rule to apply.
Name of the tag.
Value of the tag.
If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.
Specifies when an object transitions to a specified storage class.
Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.
Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.
The storage class to which you want the object to transition.
Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA , ONEZONE_IA , INTELLIGENT_TIERING , GLACIER , or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA , ONEZONE_IA , INTELLIGENT_TIERING , GLACIER , or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide .
The class of storage used to store the object.
Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.
Calls S3.Client.get_bucket_lifecycle_configuration() to update the attributes of the BucketLifecycleConfiguration resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_lifecycle_configuration.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketLogging:
import boto3
s3 = boto3.resource('s3')
bucket_logging = s3.BucketLogging('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketLogging's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(dict) --
TargetBucket (string) --
Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key.
TargetGrants (list) --
(dict) --
Grantee (dict) --
DisplayName (string) --
Screen name of the grantee.
EmailAddress (string) --
Email address of the grantee.
ID (string) --
The canonical user ID of the grantee.
Type (string) --
Type of grantee
URI (string) --
URI of the grantee group.
Permission (string) --
Logging permissions assigned to the Grantee for the bucket.
TargetPrefix (string) --
A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_logging() to update the attributes of the BucketLogging resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_logging.load()
Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. To set the logging status of a bucket, you must be the bucket owner.
See also: AWS API Documentation
Request Syntax
response = bucket_logging.put(
BucketLoggingStatus={
'LoggingEnabled': {
'TargetBucket': 'string',
'TargetGrants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'READ'|'WRITE'
},
],
'TargetPrefix': 'string'
}
},
)
[REQUIRED]
Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Logging permissions assigned to the Grantee for the bucket.
A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket.
Calls S3.Client.get_bucket_logging() to update the attributes of the BucketLogging resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_logging.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketNotification:
import boto3
s3 = boto3.resource('s3')
bucket_notification = s3.BucketNotification('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketNotification's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(list) --
Describes the AWS Lambda functions to invoke and the events for which to invoke them.
(dict) --
A container for specifying the configuration for AWS Lambda notifications.
Id (string) --
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
LambdaFunctionArn (string) --
The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.
Events (list) --
The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide .
(string) --
The bucket event for which to send notifications.
Filter (dict) --
Key (dict) --
FilterRules (list) --
(dict) --
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
Name (string) --
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
Value (string) --
The value that the filter searches for in object key names.
(list) --
The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.
(dict) --
Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.
Id (string) --
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
QueueArn (string) --
The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.
Events (list) --
(string) --
The bucket event for which to send notifications.
Filter (dict) --
Key (dict) --
FilterRules (list) --
(dict) --
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
Name (string) --
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
Value (string) --
The value that the filter searches for in object key names.
(list) --
The topic to which notifications are sent and the events for which notifications are generated.
(dict) --
A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.
Id (string) --
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
TopicArn (string) --
The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.
Events (list) --
The Amazon S3 bucket event about which to send notifications. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide .
(string) --
The bucket event for which to send notifications.
Filter (dict) --
Key (dict) --
FilterRules (list) --
(dict) --
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
Name (string) --
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
Value (string) --
The value that the filter searches for in object key names.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_notification_configuration() to update the attributes of the BucketNotification resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_notification.load()
Enables notifications of specified events for a bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_notification.put(
NotificationConfiguration={
'TopicConfigurations': [
{
'Id': 'string',
'TopicArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
],
'QueueConfigurations': [
{
'Id': 'string',
'QueueArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
],
'LambdaFunctionConfigurations': [
{
'Id': 'string',
'LambdaFunctionArn': 'string',
'Events': [
's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed',
],
'Filter': {
'Key': {
'FilterRules': [
{
'Name': 'prefix'|'suffix',
'Value': 'string'
},
]
}
}
},
]
}
)
[REQUIRED]
The topic to which notifications are sent and the events for which notifications are generated.
A container for specifying the configuration for publication of messages to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects specified events.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.
The Amazon S3 bucket event about which to send notifications. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide .
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.
Specifies the configuration for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon S3 detects specified events.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
Describes the AWS Lambda functions to invoke and the events for which to invoke them.
A container for specifying the configuration for AWS Lambda notifications.
An optional unique identifier for configurations in a notification configuration. If you don't provide one, Amazon S3 will assign an ID.
The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.
The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more information, see Supported Event Types in the Amazon Simple Storage Service Developer Guide .
The bucket event for which to send notifications.
Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.
The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide .
The value that the filter searches for in object key names.
Calls S3.Client.get_bucket_notification_configuration() to update the attributes of the BucketNotification resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_notification.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketPolicy:
import boto3
s3 = boto3.resource('s3')
bucket_policy = s3.BucketPolicy('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketPolicy's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(string) --
The bucket policy as a JSON document.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Deletes the policy from the bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_policy.delete()
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_policy() to update the attributes of the BucketPolicy resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_policy.load()
Applies an Amazon S3 bucket policy to an Amazon S3 bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_policy.put(
ConfirmRemoveSelfBucketAccess=True|False,
Policy='string'
)
[REQUIRED]
The bucket policy as a JSON document.
None
Calls S3.Client.get_bucket_policy() to update the attributes of the BucketPolicy resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_policy.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketRequestPayment:
import boto3
s3 = boto3.resource('s3')
bucket_request_payment = s3.BucketRequestPayment('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketRequestPayment's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(string) --
Specifies who pays for the download and request fees.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_request_payment() to update the attributes of the BucketRequestPayment resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_request_payment.load()
Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. Documentation on requester pays buckets can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html
See also: AWS API Documentation
Request Syntax
response = bucket_request_payment.put(
RequestPaymentConfiguration={
'Payer': 'Requester'|'BucketOwner'
}
)
[REQUIRED]
Specifies who pays for the download and request fees.
Calls S3.Client.get_bucket_request_payment() to update the attributes of the BucketRequestPayment resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_request_payment.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketTagging:
import boto3
s3 = boto3.resource('s3')
bucket_tagging = s3.BucketTagging('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketTagging's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(list) --
(dict) --
Key (string) --
Name of the tag.
Value (string) --
Value of the tag.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Deletes the tags from the bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_tagging.delete()
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_tagging() to update the attributes of the BucketTagging resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_tagging.load()
Sets the tags for a bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_tagging.put(
Tagging={
'TagSet': [
{
'Key': 'string',
'Value': 'string'
},
]
}
)
[REQUIRED]
Name of the tag.
Value of the tag.
Calls S3.Client.get_bucket_tagging() to update the attributes of the BucketTagging resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_tagging.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketVersioning:
import boto3
s3 = boto3.resource('s3')
bucket_versioning = s3.BucketVersioning('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketVersioning's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(string) --
Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned.
(string) --
The versioning state of the bucket.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.
See also: AWS API Documentation
Request Syntax
response = bucket_versioning.enable(
MFA='string',
)
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_versioning() to update the attributes of the BucketVersioning resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_versioning.load()
Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.
See also: AWS API Documentation
Request Syntax
response = bucket_versioning.put(
MFA='string',
VersioningConfiguration={
'MFADelete': 'Enabled'|'Disabled',
'Status': 'Enabled'|'Suspended'
}
)
[REQUIRED]
Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned.
The versioning state of the bucket.
None
Calls S3.Client.get_bucket_versioning() to update the attributes of the BucketVersioning resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_versioning.reload()
Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.
See also: AWS API Documentation
Request Syntax
response = bucket_versioning.suspend(
MFA='string',
)
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) BucketWebsite:
import boto3
s3 = boto3.resource('s3')
bucket_website = s3.BucketWebsite('bucket_name')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The BucketWebsite's bucket_name identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(dict) --
Key (string) --
The object key name to use when a 4XX class error occurs.
(dict) --
Suffix (string) --
A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character.
(dict) --
HostName (string) --
Name of the host where requests are redirected.
Protocol (string) --
Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
(list) --
(dict) --
Specifies the redirect behavior and when a redirect is applied.
Condition (dict) --
A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the /docs folder, redirect to the /documents folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.
HttpErrorCodeReturnedEquals (string) --
The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. Required when parent element Condition is specified and sibling KeyPrefixEquals is not specified. If both are specified, then both must be true for the redirect to be applied.
KeyPrefixEquals (string) --
The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html , the key prefix will be ExamplePage.html . To redirect request for all pages with the prefix docs/ , the key prefix will be /docs , which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied.
Redirect (dict) --
Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return.
HostName (string) --
The host name to use in the redirect request.
HttpRedirectCode (string) --
The HTTP redirect code to use on the response. Not required if one of the siblings is present.
Protocol (string) --
Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
ReplaceKeyPrefixWith (string) --
The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix docs/ (objects in the docs/ folder) to documents/ , you can set a condition block with KeyPrefixEquals set to docs/ and in the Redirect set ReplaceKeyPrefixWith to /documents . Not required if one of the siblings is present. Can be present only if ReplaceKeyWith is not provided.
ReplaceKeyWith (string) --
The specific object key to use in the redirect request. For example, redirect request to error.html . Not required if one of the siblings is present. Can be present only if ReplaceKeyPrefixWith is not provided.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
This operation removes the website configuration from the bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_website.delete()
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_bucket_website() to update the attributes of the BucketWebsite resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_website.load()
Set the website configuration for a bucket.
See also: AWS API Documentation
Request Syntax
response = bucket_website.put(
WebsiteConfiguration={
'ErrorDocument': {
'Key': 'string'
},
'IndexDocument': {
'Suffix': 'string'
},
'RedirectAllRequestsTo': {
'HostName': 'string',
'Protocol': 'http'|'https'
},
'RoutingRules': [
{
'Condition': {
'HttpErrorCodeReturnedEquals': 'string',
'KeyPrefixEquals': 'string'
},
'Redirect': {
'HostName': 'string',
'HttpRedirectCode': 'string',
'Protocol': 'http'|'https',
'ReplaceKeyPrefixWith': 'string',
'ReplaceKeyWith': 'string'
}
},
]
}
)
[REQUIRED]
The name of the error document for the website.
The object key name to use when a 4XX class error occurs.
The name of the index document for the website.
A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character.
The redirect behavior for every request to this bucket's website endpoint.
Warning
If you specify this property, you can't specify any other property.
Name of the host where requests are redirected.
Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
Rules that define when a redirect is applied and the redirect behavior.
Specifies the redirect behavior and when a redirect is applied.
A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the /docs folder, redirect to the /documents folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.
The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. Required when parent element Condition is specified and sibling KeyPrefixEquals is not specified. If both are specified, then both must be true for the redirect to be applied.
The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html , the key prefix will be ExamplePage.html . To redirect request for all pages with the prefix docs/ , the key prefix will be /docs , which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied.
Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return.
The host name to use in the redirect request.
The HTTP redirect code to use on the response. Not required if one of the siblings is present.
Protocol to use when redirecting requests. The default is the protocol that is used in the original request.
The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix docs/ (objects in the docs/ folder) to documents/ , you can set a condition block with KeyPrefixEquals set to docs/ and in the Redirect set ReplaceKeyPrefixWith to /documents . Not required if one of the siblings is present. Can be present only if ReplaceKeyWith is not provided.
The specific object key to use in the redirect request. For example, redirect request to error.html . Not required if one of the siblings is present. Can be present only if ReplaceKeyPrefixWith is not provided.
Calls S3.Client.get_bucket_website() to update the attributes of the BucketWebsite resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
bucket_website.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) MultipartUpload:
import boto3
s3 = boto3.resource('s3')
multipart_upload = s3.MultipartUpload('bucket_name','object_key','id')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
These are the resource's available collections:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The MultipartUpload's bucket_name identifier. This must be set.
(string) The MultipartUpload's object_key identifier. This must be set.
(string) The MultipartUpload's id identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(datetime) --
Date and time at which the multipart upload was initiated.
(dict) --
Identifies who initiated the multipart upload.
ID (string) --
If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.
DisplayName (string) --
Name of the Principal.
(string) --
Key of the object for which the multipart upload was initiated.
(string) --
The class of storage used to store the object.
(string) --
Upload ID that identifies the multipart upload.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Aborts a multipart upload.
To verify that all parts have been removed, so you don't get charged for the part storage, you should call the List Parts operation and ensure the parts list is empty.
See also: AWS API Documentation
Request Syntax
response = multipart_upload.abort(
RequestPayer='requester'
)
{
'RequestCharged': 'requester'
}
Response Structure
If present, indicates that the requester was successfully charged for the request.
Completes a multipart upload by assembling previously uploaded parts.
See also: AWS API Documentation
Request Syntax
object = multipart_upload.complete(
MultipartUpload={
'Parts': [
{
'ETag': 'string',
'PartNumber': 123
},
]
},
RequestPayer='requester'
)
Entity tag returned when the part was uploaded.
Part number that identifies the part. This is a positive integer between 1 and 10,000.
s3.Object
Object resource
Returns a list of all the available sub-resources for this Resource.
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
Creates a Object resource.:
object = multipart_upload.Object()
Creates a MultipartUploadPart resource.:
multipart_upload_part = multipart_upload.Part('part_number')
Collections
Collections provide an interface to iterate over and manipulate groups of resources. For more information about collections refer to the Resources Introduction Guide.
A collection of MultipartUploadPart resources
Creates an iterable of all MultipartUploadPart resources in the collection.
See also: AWS API Documentation
Request Syntax
multipart_upload_part_iterator = multipart_upload.parts.all()
Creates an iterable of all MultipartUploadPart resources in the collection filtered by kwargs passed to method.
See also: AWS API Documentation
Request Syntax
multipart_upload_part_iterator = multipart_upload.parts.filter(
MaxParts=123,
PartNumberMarker=123,
RequestPayer='requester'
)
list(s3.MultipartUploadPart)
A list of MultipartUploadPart resources
Creates an iterable up to a specified amount of MultipartUploadPart resources in the collection.
See also: AWS API Documentation
Request Syntax
multipart_upload_part_iterator = multipart_upload.parts.limit(
count=123
)
Creates an iterable of all MultipartUploadPart resources in the collection, but limits the number of items returned by each service call by the specified amount.
See also: AWS API Documentation
Request Syntax
multipart_upload_part_iterator = multipart_upload.parts.page_size(
count=123
)
A resource representing an Amazon Simple Storage Service (S3) MultipartUploadPart:
import boto3
s3 = boto3.resource('s3')
multipart_upload_part = s3.MultipartUploadPart('bucket_name','object_key','multipart_upload_id','part_number')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The MultipartUploadPart's bucket_name identifier. This must be set.
(string) The MultipartUploadPart's object_key identifier. This must be set.
(string) The MultipartUploadPart's multipart_upload_id identifier. This must be set.
(string) The MultipartUploadPart's part_number identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(string) --
Entity tag returned when the part was uploaded.
(datetime) --
Date and time at which the part was uploaded.
(integer) --
Size in bytes of the uploaded part data.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Uploads a part by copying data from an existing object as data source.
See also: AWS API Documentation
Request Syntax
response = multipart_upload_part.copy_from(
CopySource='string' or {'Bucket': 'string', 'Key': 'string', 'VersionId': 'string'},
CopySourceIfMatch='string',
CopySourceIfModifiedSince=datetime(2015, 1, 1),
CopySourceIfNoneMatch='string',
CopySourceIfUnmodifiedSince=datetime(2015, 1, 1),
CopySourceRange='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
CopySourceSSECustomerAlgorithm='string',
CopySourceSSECustomerKey='string',
RequestPayer='requester'
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'CopySourceVersionId': 'string',
'CopyPartResult': {
'ETag': 'string',
'LastModified': datetime(2015, 1, 1)
},
'ServerSideEncryption': 'AES256'|'aws:kms',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
CopySourceVersionId (string) --
The version of the source object that was copied, if you have enabled versioning on the source bucket.
CopyPartResult (dict) --
ETag (string) --
Entity tag of the object.
LastModified (datetime) --
Date and time at which the object was uploaded.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Returns a list of all the available sub-resources for this Resource.
Uploads a part in a multipart upload.
Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
See also: AWS API Documentation
Request Syntax
response = multipart_upload_part.upload(
Body=b'bytes'|file,
ContentLength=123,
ContentMD5='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester'
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'ServerSideEncryption': 'AES256'|'aws:kms',
'ETag': 'string',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
ETag (string) --
Entity tag for the uploaded object.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
Creates a MultipartUpload resource.:
multipart_upload = multipart_upload_part.MultipartUpload()
A resource representing an Amazon Simple Storage Service (S3) Object:
import boto3
s3 = boto3.resource('s3')
object = s3.Object('bucket_name','key')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
These are the resource's available waiters:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The Object's bucket_name identifier. This must be set.
(string) The Object's key identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(string) --
Specifies caching behavior along the request/reply chain.
(string) --
Specifies presentational information for the object.
(string) --
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
(string) --
The language the content is in.
(integer) --
Size of the body in bytes.
(string) --
A standard MIME type describing the format of the object data.
(boolean) --
Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
(string) --
An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
(string) --
If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
(datetime) --
The date and time at which the object is no longer cacheable.
(datetime) --
Last modified date of the object
(dict) --
A map of metadata to store with the object in S3.
(integer) --
This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
(string) --
The Legal Hold status for the specified object.
(string) --
The object lock mode currently in place for this object.
(datetime) --
The date and time when this object's object lock expires.
(integer) --
The count of parts this object has.
(string) --
If present, indicates that the requester was successfully charged for the request.
(string) --
Provides information about object restoration operation and expiration time of the restored object copy.
(string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
(string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
(string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
(string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
(string) --
Version of the object.
(string) --
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Copy an object from one S3 location to this object.
This is a managed transfer which will perform a multipart copy in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.resource('s3')
copy_source = {
'Bucket': 'mybucket',
'Key': 'mykey'
}
bucket = s3.Bucket('otherbucket')
obj = bucket.Object('otherkey')
obj.copy(copy_source)
Creates a copy of an object that is already stored in Amazon S3.
See also: AWS API Documentation
Request Syntax
response = object.copy_from(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentType='string',
CopySource='string' or {'Bucket': 'string', 'Key': 'string', 'VersionId': 'string'},
CopySourceIfMatch='string',
CopySourceIfModifiedSince=datetime(2015, 1, 1),
CopySourceIfNoneMatch='string',
CopySourceIfUnmodifiedSince=datetime(2015, 1, 1),
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Metadata={
'string': 'string'
},
MetadataDirective='COPY'|'REPLACE',
TaggingDirective='COPY'|'REPLACE',
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
CopySourceSSECustomerAlgorithm='string',
CopySourceSSECustomerKey='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'CopyObjectResult': {
'ETag': 'string',
'LastModified': datetime(2015, 1, 1)
},
'Expiration': 'string',
'CopySourceVersionId': 'string',
'VersionId': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'SSEKMSEncryptionContext': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
CopyObjectResult (dict) --
Expiration (string) --
If the object expiration is configured, the response includes this header.
CopySourceVersionId (string) --
VersionId (string) --
Version ID of the newly created copy.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
SSEKMSEncryptionContext (string) --
If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.
See also: AWS API Documentation
Request Syntax
response = object.delete(
MFA='string',
VersionId='string',
RequestPayer='requester',
BypassGovernanceRetention=True|False
)
dict
Response Syntax
{
'DeleteMarker': True|False,
'VersionId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
DeleteMarker (boolean) --
Specifies whether the versioned object that was permanently deleted was (true) or was not (false) a delete marker.
VersionId (string) --
Returns the version ID of the delete marker created as a result of the DELETE operation.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Download an S3 object to a file.
Usage:
import boto3
s3 = boto3.resource('s3')
s3.Object('mybucket', 'hello.txt').download_file('/tmp/hello.txt')
Similar behavior as S3Transfer's download_file() method, except that parameters are capitalized. Detailed examples can be found at S3Transfer's Usage.
Download this object from S3 to a file-like object.
The file-like object must be in binary mode.
This is a managed transfer which will perform a multipart download in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('mybucket')
obj = bucket.Object('mykey')
with open('filename', 'wb') as data:
obj.download_fileobj(data)
Retrieves objects from Amazon S3.
See also: AWS API Documentation
Request Syntax
response = object.get(
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Range='string',
ResponseCacheControl='string',
ResponseContentDisposition='string',
ResponseContentEncoding='string',
ResponseContentLanguage='string',
ResponseContentType='string',
ResponseExpires=datetime(2015, 1, 1),
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'Body': StreamingBody(),
'DeleteMarker': True|False,
'AcceptRanges': 'string',
'Expiration': 'string',
'Restore': 'string',
'LastModified': datetime(2015, 1, 1),
'ContentLength': 123,
'ETag': 'string',
'MissingMeta': 123,
'VersionId': 'string',
'CacheControl': 'string',
'ContentDisposition': 'string',
'ContentEncoding': 'string',
'ContentLanguage': 'string',
'ContentRange': 'string',
'ContentType': 'string',
'Expires': datetime(2015, 1, 1),
'WebsiteRedirectLocation': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'Metadata': {
'string': 'string'
},
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'RequestCharged': 'requester',
'ReplicationStatus': 'COMPLETE'|'PENDING'|'FAILED'|'REPLICA',
'PartsCount': 123,
'TagCount': 123,
'ObjectLockMode': 'GOVERNANCE'|'COMPLIANCE',
'ObjectLockRetainUntilDate': datetime(2015, 1, 1),
'ObjectLockLegalHoldStatus': 'ON'|'OFF'
}
Response Structure
(dict) --
Body (StreamingBody) --
Object data.
DeleteMarker (boolean) --
Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
AcceptRanges (string) --
Expiration (string) --
If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
Restore (string) --
Provides information about object restoration operation and expiration time of the restored object copy.
LastModified (datetime) --
Last modified date of the object
ContentLength (integer) --
Size of the body in bytes.
ETag (string) --
An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
MissingMeta (integer) --
This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
VersionId (string) --
Version of the object.
CacheControl (string) --
Specifies caching behavior along the request/reply chain.
ContentDisposition (string) --
Specifies presentational information for the object.
ContentEncoding (string) --
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
ContentLanguage (string) --
The language the content is in.
ContentRange (string) --
The portion of the object returned in the response.
ContentType (string) --
A standard MIME type describing the format of the object data.
Expires (datetime) --
The date and time at which the object is no longer cacheable.
WebsiteRedirectLocation (string) --
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
Metadata (dict) --
A map of metadata to store with the object in S3.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
StorageClass (string) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
ReplicationStatus (string) --
PartsCount (integer) --
The count of parts this object has.
TagCount (integer) --
The number of tags, if any, on the object.
ObjectLockMode (string) --
The object lock mode currently in place for this object.
ObjectLockRetainUntilDate (datetime) --
The date and time when this object's object lock will expire.
ObjectLockLegalHoldStatus (string) --
Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.
Returns a list of all the available sub-resources for this Resource.
Initiates a multipart upload and returns an upload ID.
Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
See also: AWS API Documentation
Request Syntax
multipart_upload = object.initiate_multipart_upload(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentType='string',
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Metadata={
'string': 'string'
},
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
s3.MultipartUpload
MultipartUpload resource
Calls S3.Client.head_object() to update the attributes of the Object resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
object.load()
Adds an object to a bucket.
See also: AWS API Documentation
Request Syntax
response = object.put(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
Body=b'bytes'|file,
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentLength=123,
ContentMD5='string',
ContentType='string',
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Metadata={
'string': 'string'
},
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'Expiration': 'string',
'ETag': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'VersionId': 'string',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'SSEKMSEncryptionContext': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
Expiration (string) --
If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.
ETag (string) --
Entity tag for the uploaded object.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
VersionId (string) --
Version of the object.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
SSEKMSEncryptionContext (string) --
If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Calls S3.Client.head_object() to update the attributes of the Object resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
object.reload()
Restores an archived copy of an object back into Amazon S3
See also: AWS API Documentation
Request Syntax
response = object.restore_object(
VersionId='string',
RestoreRequest={
'Days': 123,
'GlacierJobParameters': {
'Tier': 'Standard'|'Bulk'|'Expedited'
},
'Type': 'SELECT',
'Tier': 'Standard'|'Bulk'|'Expedited',
'Description': 'string',
'SelectParameters': {
'InputSerialization': {
'CSV': {
'FileHeaderInfo': 'USE'|'IGNORE'|'NONE',
'Comments': 'string',
'QuoteEscapeCharacter': 'string',
'RecordDelimiter': 'string',
'FieldDelimiter': 'string',
'QuoteCharacter': 'string',
'AllowQuotedRecordDelimiter': True|False
},
'CompressionType': 'NONE'|'GZIP'|'BZIP2',
'JSON': {
'Type': 'DOCUMENT'|'LINES'
},
'Parquet': {}
},
'ExpressionType': 'SQL',
'Expression': 'string',
'OutputSerialization': {
'CSV': {
'QuoteFields': 'ALWAYS'|'ASNEEDED',
'QuoteEscapeCharacter': 'string',
'RecordDelimiter': 'string',
'FieldDelimiter': 'string',
'QuoteCharacter': 'string'
},
'JSON': {
'RecordDelimiter': 'string'
}
}
},
'OutputLocation': {
'S3': {
'BucketName': 'string',
'Prefix': 'string',
'Encryption': {
'EncryptionType': 'AES256'|'aws:kms',
'KMSKeyId': 'string',
'KMSContext': 'string'
},
'CannedACL': 'private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
'AccessControlList': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'Tagging': {
'TagSet': [
{
'Key': 'string',
'Value': 'string'
},
]
},
'UserMetadata': [
{
'Name': 'string',
'Value': 'string'
},
],
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE'
}
}
},
RequestPayer='requester'
)
Lifetime of the active copy in days. Do not use with restores that specify OutputLocation.
Glacier related parameters pertaining to this job. Do not use with restores that specify OutputLocation.
Glacier retrieval tier at which the restore will be processed.
Type of restore request.
Glacier retrieval tier at which the restore will be processed.
The optional description for the job.
Describes the parameters for Select job types.
Describes the serialization format of the object.
Describes the serialization of a CSV-encoded object.
Describes the first line of input. Valid values: None, Ignore, Use.
The single character used to indicate a row should be ignored when present at the start of a row.
The single character used for escaping the quote character inside an already escaped value.
The value used to separate individual records.
The value used to separate individual fields in a record.
Value used for escaping where the field delimiter is part of the value.
Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.
Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.
Specifies JSON as object's input serialization format.
The type of JSON. Valid values: Document, Lines.
Specifies Parquet as object's input serialization format.
The type of the provided expression (e.g., SQL).
The expression that is used to query the object.
Describes how the results of the Select job are serialized.
Describes the serialization of CSV-encoded Select results.
Indicates whether or not all output fields should be quoted.
Th single character used for escaping the quote character inside an already escaped value.
The value used to separate individual records.
The value used to separate individual fields in a record.
The value used for escaping where the field delimiter is part of the value.
Specifies JSON as request's output serialization format.
The value used to separate individual records in the output.
Describes the location where the restore job's output is stored.
Describes an S3 location that will receive the results of the restore request.
The name of the bucket where the restore results will be placed.
The prefix that is prepended to the restore results for this request.
The server-side encryption algorithm used when storing job results in Amazon S3 (e.g., AES256, aws:kms).
If the encryption type is aws:kms, this optional value specifies the AWS KMS key ID to use for encryption of job results.
If the encryption type is aws:kms, this optional value can be used to specify the encryption context for the restore results.
The canned ACL to apply to the restore results.
A list of grants that control access to the staged results.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Specifies the permission given to the grantee.
The tag-set that is applied to the restore results.
Name of the tag.
Value of the tag.
A list of metadata to store with the restore results in S3.
A metadata key-value pair to store with an object.
The class of storage used to store the restore results.
dict
Response Syntax
{
'RequestCharged': 'requester',
'RestoreOutputPath': 'string'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
RestoreOutputPath (string) --
Indicates the path in the provided S3 output location where Select results will be restored to.
Upload a file to an S3 object.
Usage:
import boto3
s3 = boto3.resource('s3')
s3.Object('mybucket', 'hello.txt').upload_file('/tmp/hello.txt')
Similar behavior as S3Transfer's upload_file() method, except that parameters are capitalized. Detailed examples can be found at S3Transfer's Usage.
Upload a file-like object to this object.
The file-like object must be in binary mode.
This is a managed transfer which will perform a multipart upload in multiple threads if necessary.
Usage:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('mybucket')
obj = bucket.Object('mykey')
with open('filename', 'rb') as data:
obj.upload_fileobj(data)
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
Creates a ObjectAcl resource.:
object_acl = object.Acl()
Creates a Bucket resource.:
bucket = object.Bucket()
Creates a MultipartUpload resource.:
multipart_upload = object.MultipartUpload('id')
Creates a ObjectVersion resource.:
object_version = object.Version('id')
Waiters
Waiters provide an interface to wait for a resource to reach a specific state. For more information about waiters refer to the Resources Introduction Guide.
Waits until this Object is exists. This method calls S3.Waiter.object_exists.wait() which polls. S3.Client.head_object() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
object.wait_until_exists(
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Range='string',
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
None
Waits until this Object is not exists. This method calls S3.Waiter.object_not_exists.wait() which polls. S3.Client.head_object() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
object.wait_until_not_exists(
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Range='string',
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
None
A resource representing an Amazon Simple Storage Service (S3) ObjectAcl:
import boto3
s3 = boto3.resource('s3')
object_acl = s3.ObjectAcl('bucket_name','object_key')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The ObjectAcl's bucket_name identifier. This must be set.
(string) The ObjectAcl's object_key identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(list) --
A list of grants.
(dict) --
Grantee (dict) --
DisplayName (string) --
Screen name of the grantee.
EmailAddress (string) --
Email address of the grantee.
ID (string) --
The canonical user ID of the grantee.
Type (string) --
Type of grantee
URI (string) --
URI of the grantee group.
Permission (string) --
Specifies the permission given to the grantee.
(string) --
If present, indicates that the requester was successfully charged for the request.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Returns a list of all the available sub-resources for this Resource.
Calls S3.Client.get_object_acl() to update the attributes of the ObjectAcl resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
object_acl.load()
uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket
See also: AWS API Documentation
Request Syntax
response = object_acl.put(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
AccessControlPolicy={
'Grants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWrite='string',
GrantWriteACP='string',
RequestPayer='requester',
VersionId='string'
)
Contains the elements that set the ACL permissions for an object per grantee.
A list of grants.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Specifies the permission given to the grantee.
Container for the bucket owner's display name and ID.
dict
Response Syntax
{
'RequestCharged': 'requester'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Calls S3.Client.get_object_acl() to update the attributes of the ObjectAcl resource. Note that the load and reload methods are the same method and can be used interchangeably.
See also: AWS API Documentation
Request Syntax
object_acl.reload()
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
A resource representing an Amazon Simple Storage Service (S3) ObjectSummary:
import boto3
s3 = boto3.resource('s3')
object_summary = s3.ObjectSummary('bucket_name','key')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
These are the resource's available waiters:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The ObjectSummary's bucket_name identifier. This must be set.
(string) The ObjectSummary's key identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(string) --
The class of storage used to store the object.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Creates a copy of an object that is already stored in Amazon S3.
See also: AWS API Documentation
Request Syntax
response = object_summary.copy_from(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentType='string',
CopySource='string' or {'Bucket': 'string', 'Key': 'string', 'VersionId': 'string'},
CopySourceIfMatch='string',
CopySourceIfModifiedSince=datetime(2015, 1, 1),
CopySourceIfNoneMatch='string',
CopySourceIfUnmodifiedSince=datetime(2015, 1, 1),
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Metadata={
'string': 'string'
},
MetadataDirective='COPY'|'REPLACE',
TaggingDirective='COPY'|'REPLACE',
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
CopySourceSSECustomerAlgorithm='string',
CopySourceSSECustomerKey='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'CopyObjectResult': {
'ETag': 'string',
'LastModified': datetime(2015, 1, 1)
},
'Expiration': 'string',
'CopySourceVersionId': 'string',
'VersionId': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'SSEKMSEncryptionContext': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
CopyObjectResult (dict) --
Expiration (string) --
If the object expiration is configured, the response includes this header.
CopySourceVersionId (string) --
VersionId (string) --
Version ID of the newly created copy.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
SSEKMSEncryptionContext (string) --
If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.
See also: AWS API Documentation
Request Syntax
response = object_summary.delete(
MFA='string',
VersionId='string',
RequestPayer='requester',
BypassGovernanceRetention=True|False
)
dict
Response Syntax
{
'DeleteMarker': True|False,
'VersionId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
DeleteMarker (boolean) --
Specifies whether the versioned object that was permanently deleted was (true) or was not (false) a delete marker.
VersionId (string) --
Returns the version ID of the delete marker created as a result of the DELETE operation.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Retrieves objects from Amazon S3.
See also: AWS API Documentation
Request Syntax
response = object_summary.get(
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Range='string',
ResponseCacheControl='string',
ResponseContentDisposition='string',
ResponseContentEncoding='string',
ResponseContentLanguage='string',
ResponseContentType='string',
ResponseExpires=datetime(2015, 1, 1),
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'Body': StreamingBody(),
'DeleteMarker': True|False,
'AcceptRanges': 'string',
'Expiration': 'string',
'Restore': 'string',
'LastModified': datetime(2015, 1, 1),
'ContentLength': 123,
'ETag': 'string',
'MissingMeta': 123,
'VersionId': 'string',
'CacheControl': 'string',
'ContentDisposition': 'string',
'ContentEncoding': 'string',
'ContentLanguage': 'string',
'ContentRange': 'string',
'ContentType': 'string',
'Expires': datetime(2015, 1, 1),
'WebsiteRedirectLocation': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'Metadata': {
'string': 'string'
},
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'RequestCharged': 'requester',
'ReplicationStatus': 'COMPLETE'|'PENDING'|'FAILED'|'REPLICA',
'PartsCount': 123,
'TagCount': 123,
'ObjectLockMode': 'GOVERNANCE'|'COMPLIANCE',
'ObjectLockRetainUntilDate': datetime(2015, 1, 1),
'ObjectLockLegalHoldStatus': 'ON'|'OFF'
}
Response Structure
(dict) --
Body (StreamingBody) --
Object data.
DeleteMarker (boolean) --
Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
AcceptRanges (string) --
Expiration (string) --
If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
Restore (string) --
Provides information about object restoration operation and expiration time of the restored object copy.
LastModified (datetime) --
Last modified date of the object
ContentLength (integer) --
Size of the body in bytes.
ETag (string) --
An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
MissingMeta (integer) --
This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
VersionId (string) --
Version of the object.
CacheControl (string) --
Specifies caching behavior along the request/reply chain.
ContentDisposition (string) --
Specifies presentational information for the object.
ContentEncoding (string) --
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
ContentLanguage (string) --
The language the content is in.
ContentRange (string) --
The portion of the object returned in the response.
ContentType (string) --
A standard MIME type describing the format of the object data.
Expires (datetime) --
The date and time at which the object is no longer cacheable.
WebsiteRedirectLocation (string) --
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
Metadata (dict) --
A map of metadata to store with the object in S3.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
StorageClass (string) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
ReplicationStatus (string) --
PartsCount (integer) --
The count of parts this object has.
TagCount (integer) --
The number of tags, if any, on the object.
ObjectLockMode (string) --
The object lock mode currently in place for this object.
ObjectLockRetainUntilDate (datetime) --
The date and time when this object's object lock will expire.
ObjectLockLegalHoldStatus (string) --
Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.
Returns a list of all the available sub-resources for this Resource.
Initiates a multipart upload and returns an upload ID.
Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
See also: AWS API Documentation
Request Syntax
multipart_upload = object_summary.initiate_multipart_upload(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentType='string',
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Metadata={
'string': 'string'
},
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
s3.MultipartUpload
MultipartUpload resource
Calls s3.Client.head_object to update the attributes of the ObjectSummary resource.
Adds an object to a bucket.
See also: AWS API Documentation
Request Syntax
response = object_summary.put(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
Body=b'bytes'|file,
CacheControl='string',
ContentDisposition='string',
ContentEncoding='string',
ContentLanguage='string',
ContentLength=123,
ContentMD5='string',
ContentType='string',
Expires=datetime(2015, 1, 1),
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWriteACP='string',
Metadata={
'string': 'string'
},
ServerSideEncryption='AES256'|'aws:kms',
StorageClass='STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
WebsiteRedirectLocation='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
SSEKMSKeyId='string',
SSEKMSEncryptionContext='string',
RequestPayer='requester',
Tagging='string',
ObjectLockMode='GOVERNANCE'|'COMPLIANCE',
ObjectLockRetainUntilDate=datetime(2015, 1, 1),
ObjectLockLegalHoldStatus='ON'|'OFF'
)
A map of metadata to store with the object in S3.
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'Expiration': 'string',
'ETag': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'VersionId': 'string',
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'SSEKMSEncryptionContext': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
Expiration (string) --
If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.
ETag (string) --
Entity tag for the uploaded object.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
VersionId (string) --
Version of the object.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
SSEKMSEncryptionContext (string) --
If present, specifies the AWS KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Restores an archived copy of an object back into Amazon S3
See also: AWS API Documentation
Request Syntax
response = object_summary.restore_object(
VersionId='string',
RestoreRequest={
'Days': 123,
'GlacierJobParameters': {
'Tier': 'Standard'|'Bulk'|'Expedited'
},
'Type': 'SELECT',
'Tier': 'Standard'|'Bulk'|'Expedited',
'Description': 'string',
'SelectParameters': {
'InputSerialization': {
'CSV': {
'FileHeaderInfo': 'USE'|'IGNORE'|'NONE',
'Comments': 'string',
'QuoteEscapeCharacter': 'string',
'RecordDelimiter': 'string',
'FieldDelimiter': 'string',
'QuoteCharacter': 'string',
'AllowQuotedRecordDelimiter': True|False
},
'CompressionType': 'NONE'|'GZIP'|'BZIP2',
'JSON': {
'Type': 'DOCUMENT'|'LINES'
},
'Parquet': {}
},
'ExpressionType': 'SQL',
'Expression': 'string',
'OutputSerialization': {
'CSV': {
'QuoteFields': 'ALWAYS'|'ASNEEDED',
'QuoteEscapeCharacter': 'string',
'RecordDelimiter': 'string',
'FieldDelimiter': 'string',
'QuoteCharacter': 'string'
},
'JSON': {
'RecordDelimiter': 'string'
}
}
},
'OutputLocation': {
'S3': {
'BucketName': 'string',
'Prefix': 'string',
'Encryption': {
'EncryptionType': 'AES256'|'aws:kms',
'KMSKeyId': 'string',
'KMSContext': 'string'
},
'CannedACL': 'private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
'AccessControlList': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'Tagging': {
'TagSet': [
{
'Key': 'string',
'Value': 'string'
},
]
},
'UserMetadata': [
{
'Name': 'string',
'Value': 'string'
},
],
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE'
}
}
},
RequestPayer='requester'
)
Lifetime of the active copy in days. Do not use with restores that specify OutputLocation.
Glacier related parameters pertaining to this job. Do not use with restores that specify OutputLocation.
Glacier retrieval tier at which the restore will be processed.
Type of restore request.
Glacier retrieval tier at which the restore will be processed.
The optional description for the job.
Describes the parameters for Select job types.
Describes the serialization format of the object.
Describes the serialization of a CSV-encoded object.
Describes the first line of input. Valid values: None, Ignore, Use.
The single character used to indicate a row should be ignored when present at the start of a row.
The single character used for escaping the quote character inside an already escaped value.
The value used to separate individual records.
The value used to separate individual fields in a record.
Value used for escaping where the field delimiter is part of the value.
Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.
Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.
Specifies JSON as object's input serialization format.
The type of JSON. Valid values: Document, Lines.
Specifies Parquet as object's input serialization format.
The type of the provided expression (e.g., SQL).
The expression that is used to query the object.
Describes how the results of the Select job are serialized.
Describes the serialization of CSV-encoded Select results.
Indicates whether or not all output fields should be quoted.
Th single character used for escaping the quote character inside an already escaped value.
The value used to separate individual records.
The value used to separate individual fields in a record.
The value used for escaping where the field delimiter is part of the value.
Specifies JSON as request's output serialization format.
The value used to separate individual records in the output.
Describes the location where the restore job's output is stored.
Describes an S3 location that will receive the results of the restore request.
The name of the bucket where the restore results will be placed.
The prefix that is prepended to the restore results for this request.
The server-side encryption algorithm used when storing job results in Amazon S3 (e.g., AES256, aws:kms).
If the encryption type is aws:kms, this optional value specifies the AWS KMS key ID to use for encryption of job results.
If the encryption type is aws:kms, this optional value can be used to specify the encryption context for the restore results.
The canned ACL to apply to the restore results.
A list of grants that control access to the staged results.
Screen name of the grantee.
Email address of the grantee.
The canonical user ID of the grantee.
Type of grantee
URI of the grantee group.
Specifies the permission given to the grantee.
The tag-set that is applied to the restore results.
Name of the tag.
Value of the tag.
A list of metadata to store with the restore results in S3.
A metadata key-value pair to store with an object.
The class of storage used to store the restore results.
dict
Response Syntax
{
'RequestCharged': 'requester',
'RestoreOutputPath': 'string'
}
Response Structure
(dict) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
RestoreOutputPath (string) --
Indicates the path in the provided S3 output location where Select results will be restored to.
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
Creates a ObjectAcl resource.:
object_acl = object_summary.Acl()
Creates a Bucket resource.:
bucket = object_summary.Bucket()
Creates a MultipartUpload resource.:
multipart_upload = object_summary.MultipartUpload('id')
Creates a Object resource.:
object = object_summary.Object()
Creates a ObjectVersion resource.:
object_version = object_summary.Version('id')
Waiters
Waiters provide an interface to wait for a resource to reach a specific state. For more information about waiters refer to the Resources Introduction Guide.
Waits until this ObjectSummary is exists. This method calls S3.Waiter.object_exists.wait() which polls. S3.Client.head_object() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
object_summary.wait_until_exists(
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Range='string',
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
None
Waits until this ObjectSummary is not exists. This method calls S3.Waiter.object_not_exists.wait() which polls. S3.Client.head_object() every 5 seconds until a successful state is reached. An error is returned after 20 failed checks.
See also: AWS API Documentation
Request Syntax
object_summary.wait_until_not_exists(
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Range='string',
VersionId='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
None
A resource representing an Amazon Simple Storage Service (S3) ObjectVersion:
import boto3
s3 = boto3.resource('s3')
object_version = s3.ObjectVersion('bucket_name','object_key','id')
These are the resource's available identifiers:
These are the resource's available attributes:
These are the resource's available actions:
These are the resource's available sub-resources:
Identifiers
Identifiers are properties of a resource that are set upon instantation of the resource. For more information about identifiers refer to the Resources Introduction Guide.
(string) The ObjectVersion's bucket_name identifier. This must be set.
(string) The ObjectVersion's object_key identifier. This must be set.
(string) The ObjectVersion's id identifier. This must be set.
Attributes
Attributes provide access to the properties of a resource. Attributes are lazy-loaded the first time one is accessed via the load() method. For more information about attributes refer to the Resources Introduction Guide.
(boolean) --
Specifies whether the object is (true) or is not (false) the latest version of an object.
(string) --
The object key.
(datetime) --
Date and time the object was last modified.
(integer) --
Size in bytes of the object.
(string) --
The class of storage used to store the object.
(string) --
Version ID of an object.
Actions
Actions call operations on resources. They may automatically handle the passing in of arguments set from identifiers and some attributes. For more information about actions refer to the Resources Introduction Guide.
Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.
See also: AWS API Documentation
Request Syntax
response = object_version.delete(
MFA='string',
RequestPayer='requester',
BypassGovernanceRetention=True|False
)
dict
Response Syntax
{
'DeleteMarker': True|False,
'VersionId': 'string',
'RequestCharged': 'requester'
}
Response Structure
(dict) --
DeleteMarker (boolean) --
Specifies whether the versioned object that was permanently deleted was (true) or was not (false) a delete marker.
VersionId (string) --
Returns the version ID of the delete marker created as a result of the DELETE operation.
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
Retrieves objects from Amazon S3.
See also: AWS API Documentation
Request Syntax
response = object_version.get(
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Range='string',
ResponseCacheControl='string',
ResponseContentDisposition='string',
ResponseContentEncoding='string',
ResponseContentLanguage='string',
ResponseContentType='string',
ResponseExpires=datetime(2015, 1, 1),
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'Body': StreamingBody(),
'DeleteMarker': True|False,
'AcceptRanges': 'string',
'Expiration': 'string',
'Restore': 'string',
'LastModified': datetime(2015, 1, 1),
'ContentLength': 123,
'ETag': 'string',
'MissingMeta': 123,
'VersionId': 'string',
'CacheControl': 'string',
'ContentDisposition': 'string',
'ContentEncoding': 'string',
'ContentLanguage': 'string',
'ContentRange': 'string',
'ContentType': 'string',
'Expires': datetime(2015, 1, 1),
'WebsiteRedirectLocation': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'Metadata': {
'string': 'string'
},
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'RequestCharged': 'requester',
'ReplicationStatus': 'COMPLETE'|'PENDING'|'FAILED'|'REPLICA',
'PartsCount': 123,
'TagCount': 123,
'ObjectLockMode': 'GOVERNANCE'|'COMPLIANCE',
'ObjectLockRetainUntilDate': datetime(2015, 1, 1),
'ObjectLockLegalHoldStatus': 'ON'|'OFF'
}
Response Structure
(dict) --
Body (StreamingBody) --
Object data.
DeleteMarker (boolean) --
Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
AcceptRanges (string) --
Expiration (string) --
If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
Restore (string) --
Provides information about object restoration operation and expiration time of the restored object copy.
LastModified (datetime) --
Last modified date of the object
ContentLength (integer) --
Size of the body in bytes.
ETag (string) --
An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
MissingMeta (integer) --
This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
VersionId (string) --
Version of the object.
CacheControl (string) --
Specifies caching behavior along the request/reply chain.
ContentDisposition (string) --
Specifies presentational information for the object.
ContentEncoding (string) --
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
ContentLanguage (string) --
The language the content is in.
ContentRange (string) --
The portion of the object returned in the response.
ContentType (string) --
A standard MIME type describing the format of the object data.
Expires (datetime) --
The date and time at which the object is no longer cacheable.
WebsiteRedirectLocation (string) --
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
Metadata (dict) --
A map of metadata to store with the object in S3.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
StorageClass (string) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
ReplicationStatus (string) --
PartsCount (integer) --
The count of parts this object has.
TagCount (integer) --
The number of tags, if any, on the object.
ObjectLockMode (string) --
The object lock mode currently in place for this object.
ObjectLockRetainUntilDate (datetime) --
The date and time when this object's object lock will expire.
ObjectLockLegalHoldStatus (string) --
Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.
Returns a list of all the available sub-resources for this Resource.
The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.
See also: AWS API Documentation
Request Syntax
response = object_version.head(
IfMatch='string',
IfModifiedSince=datetime(2015, 1, 1),
IfNoneMatch='string',
IfUnmodifiedSince=datetime(2015, 1, 1),
Range='string',
SSECustomerAlgorithm='string',
SSECustomerKey='string',
RequestPayer='requester',
PartNumber=123
)
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
dict
Response Syntax
{
'DeleteMarker': True|False,
'AcceptRanges': 'string',
'Expiration': 'string',
'Restore': 'string',
'LastModified': datetime(2015, 1, 1),
'ContentLength': 123,
'ETag': 'string',
'MissingMeta': 123,
'VersionId': 'string',
'CacheControl': 'string',
'ContentDisposition': 'string',
'ContentEncoding': 'string',
'ContentLanguage': 'string',
'ContentType': 'string',
'Expires': datetime(2015, 1, 1),
'WebsiteRedirectLocation': 'string',
'ServerSideEncryption': 'AES256'|'aws:kms',
'Metadata': {
'string': 'string'
},
'SSECustomerAlgorithm': 'string',
'SSECustomerKeyMD5': 'string',
'SSEKMSKeyId': 'string',
'StorageClass': 'STANDARD'|'REDUCED_REDUNDANCY'|'STANDARD_IA'|'ONEZONE_IA'|'INTELLIGENT_TIERING'|'GLACIER'|'DEEP_ARCHIVE',
'RequestCharged': 'requester',
'ReplicationStatus': 'COMPLETE'|'PENDING'|'FAILED'|'REPLICA',
'PartsCount': 123,
'ObjectLockMode': 'GOVERNANCE'|'COMPLIANCE',
'ObjectLockRetainUntilDate': datetime(2015, 1, 1),
'ObjectLockLegalHoldStatus': 'ON'|'OFF'
}
Response Structure
(dict) --
DeleteMarker (boolean) --
Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
AcceptRanges (string) --
Expiration (string) --
If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
Restore (string) --
Provides information about object restoration operation and expiration time of the restored object copy.
LastModified (datetime) --
Last modified date of the object
ContentLength (integer) --
Size of the body in bytes.
ETag (string) --
An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
MissingMeta (integer) --
This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
VersionId (string) --
Version of the object.
CacheControl (string) --
Specifies caching behavior along the request/reply chain.
ContentDisposition (string) --
Specifies presentational information for the object.
ContentEncoding (string) --
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
ContentLanguage (string) --
The language the content is in.
ContentType (string) --
A standard MIME type describing the format of the object data.
Expires (datetime) --
The date and time at which the object is no longer cacheable.
WebsiteRedirectLocation (string) --
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
ServerSideEncryption (string) --
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
Metadata (dict) --
A map of metadata to store with the object in S3.
SSECustomerAlgorithm (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
SSECustomerKeyMD5 (string) --
If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
SSEKMSKeyId (string) --
If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
StorageClass (string) --
RequestCharged (string) --
If present, indicates that the requester was successfully charged for the request.
ReplicationStatus (string) --
PartsCount (integer) --
The count of parts this object has.
ObjectLockMode (string) --
The object lock mode currently in place for this object.
ObjectLockRetainUntilDate (datetime) --
The date and time when this object's object lock expires.
ObjectLockLegalHoldStatus (string) --
The Legal Hold status for the specified object.
Sub-resources
Sub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child. For more information about sub-resources refer to the Resources Introduction Guide.
The following example shows how to use an Amazon S3 bucket resource to list the objects in the bucket.
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
for obj in bucket.objects.all():
print(obj.key)
This example shows how to list all of the top-level common prefixes in an Amazon S3 bucket:
import boto3
client = boto3.client('s3')
paginator = client.get_paginator('list_objects')
result = paginator.paginate(Bucket='my-bucket', Delimiter='/')
for prefix in result.search('CommonPrefixes'):
print(prefix.get('Prefix'))
The following example shows how to initiate restoration of glacier objects in an Amazon S3 bucket, determine if a restoration is on-going, and determine if a restoration is finished.
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('glacier-bucket')
for obj_sum in bucket.objects.all():
obj = s3.Object(obj_sum.bucket_name, obj_sum.key)
if obj.storage_class == 'GLACIER':
# Try to restore the object if the storage class is glacier and
# the object does not have a completed or ongoing restoration
# request.
if obj.restore is None:
print('Submitting restoration request: %s' % obj.key)
obj.restore_object(RestoreRequest={'Days': 1})
# Print out objects whose restoration is on-going
elif 'ongoing-request="true"' in obj.restore:
print('Restoration in-progress: %s' % obj.key)
# Print out objects whose restoration is complete
elif 'ongoing-request="false"' in obj.restore:
print('Restoration complete: %s' % obj.key)
This example shows how to use SSE-KMS to upload objects using server side encryption with a key managed by KMS.
We can either use the default KMS master key, or create a custom key in AWS and use it to encrypt the object by passing in its key id.
With KMS, nothing else needs to be provided for getting the object; S3 already knows how to decrypt the object.
import boto3
import os
BUCKET = 'your-bucket-name'
s3 = boto3.client('s3')
keyid = '<the key id>'
print("Uploading S3 object with SSE-KMS")
s3.put_object(Bucket=BUCKET,
Key='encrypt-key',
Body=b'foobar',
ServerSideEncryption='aws:kms',
# Optional: SSEKMSKeyId
SSEKMSKeyId=keyid)
print("Done")
# Getting the object:
print("Getting S3 object...")
response = s3.get_object(Bucket=BUCKET,
Key='encrypt-key')
print("Done, response body:")
print(response['Body'].read())
This example shows how to use SSE-C to upload objects using server side encryption with a customer provided key.
First, we'll need a 32 byte key. For this example, we'll randomly generate a key but you can use any 32 byte key you want. Remember, you must the same key to download the object. If you lose the encryption key, you lose the object.
Also note how we don't have to provide the SSECustomerKeyMD5. Boto3 will automatically compute this value for us.
import boto3
import os
BUCKET = 'your-bucket-name'
KEY = os.urandom(32)
s3 = boto3.client('s3')
print("Uploading S3 object with SSE-C")
s3.put_object(Bucket=BUCKET,
Key='encrypt-key',
Body=b'foobar',
SSECustomerKey=KEY,
SSECustomerAlgorithm='AES256')
print("Done")
# Getting the object:
print("Getting S3 object...")
# Note how we're using the same ``KEY`` we
# created earlier.
response = s3.get_object(Bucket=BUCKET,
Key='encrypt-key',
SSECustomerKey=KEY,
SSECustomerAlgorithm='AES256')
print("Done, response body:")
print(response['Body'].read())