putBucketOwnershipControls method

Future<void> putBucketOwnershipControls({
  1. required String bucket,
  2. required OwnershipControls ownershipControls,
  3. String? contentMD5,
  4. String? expectedBucketOwner,
})

Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to PutBucketOwnershipControls:

Parameter bucket : The name of the Amazon S3 bucket whose OwnershipControls you want to set.

Parameter ownershipControls : The OwnershipControls (BucketOwnerPreferred or ObjectWriter) that you want to apply to this Amazon S3 bucket.

Parameter contentMD5 : The MD5 hash of the OwnershipControls request body.

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.

Implementation

Future<void> putBucketOwnershipControls({
  required String bucket,
  required OwnershipControls ownershipControls,
  String? contentMD5,
  String? expectedBucketOwner,
}) async {
  ArgumentError.checkNotNull(bucket, 'bucket');
  ArgumentError.checkNotNull(ownershipControls, 'ownershipControls');
  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)}?ownershipControls',
    headers: headers,
    payload: ownershipControls.toXml('OwnershipControls'),
    exceptionFnMap: _exceptionFns,
  );
}