createAccessPoint method

Future<CreateAccessPointResult> createAccessPoint({
  1. required String accountId,
  2. required String bucket,
  3. required String name,
  4. PublicAccessBlockConfiguration? publicAccessBlockConfiguration,
  5. 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.
For more information, see Using Amazon S3 on Outposts in the Amazon Simple Storage Service Developer Guide .

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);
}