putBucketLogging method
- required String bucket,
- required BucketLoggingStatus bucketLoggingStatus,
- String? contentMD5,
- String? expectedBucketOwner,
Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same AWS Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner.
The bucket owner is automatically granted FULL_CONTROL to all logs. You
use the Grantee
request element to grant access to other
people. The Permissions
request element specifies the kind of
access the grantee has to the logs.
Grantee Values
You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:
-
By the person's ID:
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> </Grantee>
DisplayName is optional and ignored in the request.
-
By Email address:
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress></Grantee>
The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl request, appears as the CanonicalUser.
-
By URI:
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>
<BucketLoggingStatus
xmlns="http://doc.s3.amazonaws.com/2006-03-01" />
For more information about server access logging, see Server Access Logging.
For more information about creating a bucket, see CreateBucket. For more information about returning the logging status of a bucket, see GetBucketLogging.
The following operations are related to PutBucketLogging
:
Parameter bucket
:
The name of the bucket for which to set the logging parameters.
Parameter bucketLoggingStatus
:
Container for logging status information.
Parameter contentMD5
:
The MD5 hash of the PutBucketLogging
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> putBucketLogging({
required String bucket,
required BucketLoggingStatus bucketLoggingStatus,
String? contentMD5,
String? expectedBucketOwner,
}) async {
ArgumentError.checkNotNull(bucket, 'bucket');
ArgumentError.checkNotNull(bucketLoggingStatus, 'bucketLoggingStatus');
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)}?logging',
headers: headers,
payload: bucketLoggingStatus.toXml('BucketLoggingStatus'),
exceptionFnMap: _exceptionFns,
);
}