

# 将对象上传到 S3 on Outposts 存储桶
<a name="S3OutpostsUploadObjects"></a>

对象是 Amazon S3 on Outposts 中存储的基础实体。每个对象都储存在一个存储桶中。您必须使用访问点才能访问 Outpost 存储桶中的任何对象。当您为对象操作指定桶时，可以使用访问点 Amazon 资源名称（ARN）或访问点别名。有关访问点别名的更多信息，请参阅[为您的 S3 on Outposts 桶访问点使用桶式别名](s3-outposts-access-points-alias.md)。

以下示例显示了 S3 on Outposts 访问点的 ARN 格式，其中包括 Outpost 所属区域的 AWS 区域 代码、AWS 账户 ID、Outpost ID 和访问点名称：

```
arn:aws:s3-outposts:region:account-id:outpost/outpost-id/accesspoint/accesspoint-name
```

有关 S3 on Outposts ARN 的更多信息，请参阅[S3 on Outposts 的资源 ARN](S3OutpostsIAM.md#S3OutpostsARN)。

对于 Amazon S3 on Outposts，对象数据始终存储在 Outpost 上。当 AWS 安装 Outpost 机架时，您的数据将保留在 Outpost 的本地，以满足数据驻留要求。您的对象永远不会离开您的 Outpost，也不在 AWS 区域 中。由于 AWS 管理控制台 托管在区域内，您无法使用控制台上传或管理 Outpost 中的对象。但是，您可以使用 REST API、AWS Command Line Interface (AWS CLI) 和 AWS SDK 通过访问点上传和管理对象。

以下 AWS CLI 和适用于 Java 的 AWS SDK 示例演示如何通过使用访问点将对象上传到 S3 on Outposts 存储桶。

------
#### [ AWS CLI ]

**Example**  
以下示例使用 AWS CLI 将一个名为 `sample-object.xml` 的对象放置到 S3 on Outposts 存储桶 (`s3-outposts:PutObject`)。要使用此命令，请将每个 `user input placeholder` 替换为您自己的信息。有关此命令的更多信息，请参阅《AWS CLI 参考》中的 [put-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html)。  

```
aws s3api put-object --bucket arn:aws:s3-outposts:Region:123456789012:outpost/op-01ac5d28a6a232904/accesspoint/example-outposts-access-point --key sample-object.xml --body sample-object.xml
```

------
#### [ SDK for Java ]

**Example**  
有关如何使用适用于 Java 的 AWS SDK 将对象上传到 S3 Outposts 存储桶的示例，请参阅《AWS SDK for Java 2.x Code Examples》**中的 [PutObjectOnOutpost.java](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javav2/example_code/s3/src/main/java/com/example/s3/outposts/PutObjectOnOutpost.java)。

------