使用 AWS CLI 的 Amazon S3 on Outposts 示例 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 AWS CLI 的 Amazon S3 on Outposts 示例

通过使用 Amazon S3 on Outposts,您可以在 AWS Outposts 上创建 S3 存储桶,并在本地为需要本地数据访问、本地数据处理和数据驻留的应用程序轻松存储和检索对象。您可以通过 AWS 管理控制台、AWS CLI、AWS 开发工具包或 REST API 使用 S3 on Outposts。有关更多信息,请参阅使用 Amazon S3 on Outposts

以下示例说明如何将 S3 on Outposts 与 AWS Command Line Interface 结合使用。

创建和管理 Amazon S3 on Outposts 存储桶

您可以使用 AWS CLI 创建和管理 S3 on Outposts 存储桶。从这些示例中,您可以创建和获取 Outposts 存储桶,列出 Outpost 的存储桶,创建和管理 Outpost 存储桶的访问点、生命周期配置和策略。

创建 S3 on Outposts 存储桶

以下示例使用 AWS CLI 创建一个 S3 on Outposts s3-outposts:CreateBucket

aws s3control create-bucket --bucket example-outpost-bucket --outpost-id op-01ac5d28a6a232904

获取 S3 on Outposts 存储桶

以下 S3 on Outposts 示例使用 AWS CLI 获取存储桶。

aws s3control get-bucket --account-id 123456789012 --bucket "arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket"

获取 S3 on Outposts 存储桶的列表

以下 AWS CLI 示例获取 Outpost 中的存储桶列表。

aws s3control list-regional-buckets --account-id 123456789012 --outpost-id op-01ac5d28a6a232904

为 S3 on Outposts 存储桶创建访问点

以下 AWS CLI 示例为 Outposts 存储桶创建访问点。

aws s3control create-access-point --account-id 123456789012 --name example-access-point --bucket "arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket" --vpc-configuration VpcId=example-vpc-12345

获取 S3 on Outposts 存储桶的访问点

以下 AWS CLI 示例获取 Outposts 存储桶的访问点。

aws s3control get-access-point --account-id 123456789012 --name arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-access-point

列出 Outpost 的访问点

以下 AWS CLI 示例列出 Outposts 存储桶的访问点。

aws s3control list-access-points --account-id 123456789012 --bucket arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket

放置 S3 on Outposts 存储桶的生命周期配置

以下 AWS CLI 示例为 Outposts 存储桶提供生命周期配置,其中带有标记前缀和标签的所有对象在 10 天后过期。

  1. 将生命周期配置策略保存到 JSON 文件中。

    { "Rules": [ { "ID": "id-1", "Filter": { "And": { "Prefix": "myprefix", "Tags": [ { "Value": "mytagvalue1", "Key": "mytagkey1" }, { "Value": "mytagvalue2", "Key": "mytagkey2" } ] } }, "Status": "Enabled", "Expiration": { "Days": 10 } } ] }
  2. 提交 JSON 文件作为放置生命周期配置 CLI 命令的一部分。

    aws s3control put-bucket-lifecycle-configuration --account-id 123456789012 --bucket arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket --lifecycle-configuration file://lifecycle1.json

获取 S3 on Outposts 存储桶的生命周期配置

以下 AWS CLI 示例获取 Outposts 存储桶的访问点。

aws s3control get-bucket-lifecycle-configuration --account-id 123456789012 --bucket arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket

在 S3 on Outposts 存储桶上放置策略

以下 AWS CLI 示例为 Outposts 存储桶放置策略。

  1. 将存储桶策略保存到 JSON 文件中。

    { "Version":"2012-10-17", "Id":"testBucketPolicy", "Statement":[ { "Sid":"st1", "Effect":"Allow", "Principal":{ "AWS":"123456789012" }, "Action":"s3-outposts:*", "Resource":"arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket" } ] }
  2. 将 JSON 文件作为放置存储桶策略 CLI 命令的一部分提交。

    aws s3control put-bucket-policy --account-id 123456789012 --bucket arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket --policy file://policy1.json

获取 S3 on Outposts 存储桶的策略

以下 AWS CLI 示例获取 Outposts 存储桶的策略。

aws s3control get-bucket-policy --account-id 123456789012 --bucket arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket

将策略放置在 S3 on Outposts 访问点上

以下 AWS CLI 示例为 Outposts 存储桶放置策略。

  1. 将访问点策略保存到 JSON 文件中。

    { "Version":"2012-10-17", "Id":"testBucketPolicy", "Statement":[ { "Sid":"st1", "Effect":"Allow", "Principal":{ "AWS":"123456789012" }, "Action":"s3-outposts:*", "Resource":"arn:aws:s3-outposts:<your-region>:123456789012:outpost/ec2/bucket/example-outpost-bucket" } ] }
  2. 将 JSON 文件作为放置存储桶策略 CLI 命令的一部分提交。

    aws s3control put-access-point-policy --account-id 123456789012 --name arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-access-point --policy file://appolicy1.json

获取 S3 on Outposts 访问点的策略

以下 AWS CLI 示例获取 Outposts 存储桶的策略。

aws s3control get-access-point-policy --account-id 123456789012 --name arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-access-point

在 Outpost 上创建 endpoint

以下 AWS CLI 示例为 Outpost 创建 endpoint。

aws s3outposts create-endpoint --outpost-id op-01ac5d28a6a232904 --subnet-id subnet-8c7a57c5 —-security-group-id sg-ab19e0d1

列出 Outpost 的 endpoint

以下 AWS CLI 示例列出 Outpost 的 endpoint。

aws s3outposts list-endpoints

在 Outpost 上删除 endpoint

以下 AWS CLI 示例为 Outpost 创建 endpoint。

aws s3outposts delete-endpoint --endpoint-id m3kvngonpdx2kadiusm --outpost-id op-01ac5d28a6a232904

通过 Amazon S3 on Outposts 使用对象

您可以使用 AWS CLI 放置和管理 S3 on Outposts 对象。从这些示例中,您可以放置对象并从 Outpost 存储桶获取对象。

将对象放入 S3 on Outposts 存储桶

以下示例使用 AWS CLI 放置 S3 on Outposts s3-outposts:PutObeject

aws s3api put-object --bucket arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-access-point --key testkey body sample-object.xml

获取 S3 on Outposts 存储桶

以下 S3 on Outposts 示例使用 AWS CLI 获取存储桶。

aws s3api get-object --bucket arn:aws:s3-outposts:<your-region>:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-access-point key testkey sample-object.xml

列出 S3 on Outposts 存储桶中的对象

以下示例使用 AWS CLI 列出 S3 on Outposts s3-outposts:ListObejectsV2

aws s3api list-objects-v2 --bucket arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-access-point