putBucketLifecycle method

  1. @Deprecated('Deprecated')
Future<void> putBucketLifecycle({
  1. required String bucket,
  2. String? contentMD5,
  3. String? expectedBucketOwner,
  4. LifecycleConfiguration? lifecycleConfiguration,
})
Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. For information about lifecycle configuration, see Object Lifecycle Management in the Amazon Simple Storage Service Developer Guide.

By default, all Amazon S3 resources, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration) are private. Only the resource owner, the AWS account that created the resource, can access it. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, users must get the s3:PutLifecycleConfiguration permission.

You can also explicitly deny permissions. Explicit denial also supersedes any other permissions. If you want to prevent users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions:

  • s3:DeleteObject
  • s3:DeleteObjectVersion
  • s3:PutLifecycleConfiguration
For more information about permissions, see Managing Access Permissions to your Amazon S3 Resources in the Amazon Simple Storage Service Developer Guide.

For more examples of transitioning objects to storage classes such as STANDARD_IA or ONEZONE_IA, see Examples of Lifecycle Configuration.

Related Resources

Parameter bucket :

Parameter contentMD5 :

For requests made using the AWS Command Line Interface (CLI) or AWS SDKs, this field is calculated automatically.

Parameter expectedBucketOwner : The account id of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.

Parameter lifecycleConfiguration :

Implementation

@Deprecated('Deprecated')
Future<void> putBucketLifecycle({
  required String bucket,
  String? contentMD5,
  String? expectedBucketOwner,
  LifecycleConfiguration? lifecycleConfiguration,
}) async {
  ArgumentError.checkNotNull(bucket, 'bucket');
  final headers = <String, String>{
    if (contentMD5 != null) 'Content-MD5': contentMD5.toString(),
    if (expectedBucketOwner != null)
      'x-amz-expected-bucket-owner': expectedBucketOwner.toString(),
  };
  await _protocol.send(
    method: 'PUT',
    requestUri: '/${Uri.encodeComponent(bucket)}?lifecycle',
    headers: headers,
    payload: lifecycleConfiguration?.toXml('LifecycleConfiguration'),
    exceptionFnMap: _exceptionFns,
  );
}