putBucketTagging method
Use tags to organize your Amazon Web Services bill to reflect your own
cost structure. To do this, sign up to get your Amazon Web Services
account bill with tag key values included. Then, to see the cost of
combined resources, organize your billing information according to
resources with the same tag key values. For example, you can tag several
resources with a specific application name, and then organize your billing
information to see the total cost of that application across several
services. For more information, see Cost
Allocation and Tagging and Using
Cost Allocation in Amazon S3 Bucket Tags.
To use this operation, you must have permissions to perform the
s3:PutBucketTagging action. The bucket owner has this
permission by default and can grant this permission to others. For more
information about permissions, see Permissions
Related to Bucket Subresource Operations and Managing
Access Permissions to Your Amazon S3 Resources.
PutBucketTagging has the following special errors. For more
Amazon S3 errors see, Error
Responses.
-
InvalidTag- The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For more information, see Using Cost Allocation in Amazon S3 Bucket Tags. -
MalformedXML- The XML provided does not match the schema. -
OperationAborted- A conflicting conditional action is currently in progress against this resource. Please try again. -
InternalError- The service was unable to apply the provided tag to the bucket.
PutBucketTagging:
Parameter bucket :
The bucket name.
Parameter tagging :
Container for the TagSet and Tag elements.
Parameter checksumAlgorithm :
Indicates the algorithm used to create the checksum for the request when
you use the SDK. This header will not provide any additional functionality
if you don't use the SDK. When you send this header, there must be a
corresponding x-amz-checksum or x-amz-trailer
header sent. Otherwise, Amazon S3 fails the request with the HTTP status
code 400 Bad Request. For more information, see Checking
object integrity in the Amazon S3 User Guide.
If you provide an individual checksum, Amazon S3 ignores any provided
ChecksumAlgorithm parameter.
Parameter contentMD5 :
The Base64 encoded 128-bit MD5 digest of the data. You must
use this header as a message integrity check to verify that the request
body was not corrupted in transit. For more information, see RFC 1864.
For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.
Parameter expectedBucketOwner :
The account ID of the expected bucket owner. If the account ID that you
provide does not match the actual owner of the bucket, the request fails
with the HTTP status code 403 Forbidden (access denied).
Implementation
Future<void> putBucketTagging({
required String bucket,
required Tagging tagging,
ChecksumAlgorithm? checksumAlgorithm,
String? contentMD5,
String? expectedBucketOwner,
}) async {
final headers = <String, String>{
if (checksumAlgorithm != null)
'x-amz-sdk-checksum-algorithm': checksumAlgorithm.value,
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)}?tagging',
headers: headers,
payload: tagging.toXml('Tagging'),
exceptionFnMap: _exceptionFns,
);
}