putPublicAccessBlock method
- required String bucket,
- required PublicAccessBlockConfiguration publicAccessBlockConfiguration,
- String? contentMD5,
- String? expectedBucketOwner,
Creates or modifies the PublicAccessBlock
configuration for
an Amazon S3 bucket. To use this operation, you must have the
s3:PutBucketPublicAccessBlock
permission. For more
information about Amazon S3 permissions, see Specifying
Permissions in a Policy.
For more information about when Amazon S3 considers a bucket or an object
public, see The
Meaning of "Public".
Related Resources
- GetPublicAccessBlock
- DeletePublicAccessBlock
- GetBucketPolicyStatus
- Using Amazon S3 Block Public Access
Parameter bucket
:
The name of the Amazon S3 bucket whose PublicAccessBlock
configuration you want to set.
Parameter publicAccessBlockConfiguration
:
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.
Parameter contentMD5
:
The MD5 hash of the PutPublicAccessBlock
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> putPublicAccessBlock({
required String bucket,
required PublicAccessBlockConfiguration publicAccessBlockConfiguration,
String? contentMD5,
String? expectedBucketOwner,
}) async {
ArgumentError.checkNotNull(bucket, 'bucket');
ArgumentError.checkNotNull(
publicAccessBlockConfiguration, 'publicAccessBlockConfiguration');
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)}?publicAccessBlock',
headers: headers,
payload: publicAccessBlockConfiguration
.toXml('PublicAccessBlockConfiguration'),
exceptionFnMap: _exceptionFns,
);
}