createAccessPoint method
- required String accountId,
- required String bucket,
- required String name,
- PublicAccessBlockConfiguration? publicAccessBlockConfiguration,
- VpcConfiguration? vpcConfiguration,
Creates an access point and associates it with the specified bucket. For more information, see Managing Data Access with Amazon S3 Access Points in the Amazon Simple Storage Service Developer Guide.
Using this action with Amazon S3 on Outposts
This action:
- Requires a virtual private cloud (VPC) configuration as S3 on Outposts only supports VPC style access points.
- Does not support ACL on S3 on Outposts buckets.
- Does not support Public Access on S3 on Outposts buckets.
- Does not support object lock for S3 on Outposts buckets.
All Amazon S3 on Outposts REST API requests for this action require an
additional parameter of x-amz-outpost-id
to be passed with
the request and an S3 on Outposts endpoint hostname prefix instead of
s3-control
. For an example of the request syntax for Amazon
S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and
the x-amz-outpost-id
derived using the access point ARN, see
the Examples
section.
The following actions are related to CreateAccessPoint
:
Parameter accountId
:
The AWS account ID for the owner of the bucket for which you want to
create an access point.
Parameter bucket
:
The name of the bucket that you want to associate this access point with.
For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.
For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
must specify the ARN of the bucket accessed in the format
arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>
.
For example, to access the bucket reports
through outpost
my-outpost
owned by account 123456789012
in
Region us-west-2
, use the URL encoding of
arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports
.
The value must be URL encoded.
Parameter name
:
The name you want to assign to this access point.
Parameter vpcConfiguration
:
If you include this field, Amazon S3 restricts access to this access point
to requests from the specified virtual private cloud (VPC).
Implementation
Future<CreateAccessPointResult> createAccessPoint({
required String accountId,
required String bucket,
required String name,
PublicAccessBlockConfiguration? publicAccessBlockConfiguration,
VpcConfiguration? vpcConfiguration,
}) async {
ArgumentError.checkNotNull(accountId, 'accountId');
_s.validateStringLength(
'accountId',
accountId,
0,
64,
isRequired: true,
);
ArgumentError.checkNotNull(bucket, 'bucket');
_s.validateStringLength(
'bucket',
bucket,
3,
255,
isRequired: true,
);
ArgumentError.checkNotNull(name, 'name');
_s.validateStringLength(
'name',
name,
3,
50,
isRequired: true,
);
final headers = <String, String>{
'x-amz-account-id': accountId.toString(),
};
final $result = await _protocol.send(
method: 'PUT',
requestUri: '/v20180820/accesspoint/${Uri.encodeComponent(name)}',
headers: headers,
payload: CreateAccessPointRequest(
accountId: accountId,
bucket: bucket,
name: name,
publicAccessBlockConfiguration: publicAccessBlockConfiguration,
vpcConfiguration: vpcConfiguration)
.toXml(
'CreateAccessPointRequest',
attributes: [
_s.XmlAttribute(_s.XmlName('xmlns'),
'http://awss3control.amazonaws.com/doc/2018-08-20/'),
],
),
exceptionFnMap: _exceptionFns,
);
return CreateAccessPointResult.fromXml($result.body);
}