View a markdown version of this page

PutObject(SOAP API) - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

PutObject(SOAP API)

注意

Amazon S3 的 SOAP API 不适用于新客户,并将于 2025 年 8 月 31 日接近使用寿命终止(EOL)。我们建议您使用 REST API 或 Amazon SDK。

PutObject 操作将对象添加到存储桶。该对象的数据以 DIME 附件的形式附加。

为了确保对象在通过网络时不会损坏,您可以计算对象的 MD5,将其 PUT 到 Amazon S3,并将返回的 Etag 与计算的 MD5 值进行比较。

如果存储桶中已存在对象,则新对象将覆盖该对象,因为 Amazon S3 存储了上次写入请求。但是,Amazon S3 是一个分布式系统。如果 Amazon S3 几乎同时收到针对同一对象的多个写入请求,则可能会存储所有对象,尽管最终只有一个请求胜出。Amazon S3 不提供对象锁定;如果您需要此功能,请务必将其内置到您的应用程序层中。

此示例将一些数据和元数据放入“quotes”存储桶的“Nelson”对象中,授予用户(通常是拥有者)对该对象的 FULL_CONTROL 访问权限,并使匿名方可以读取该对象。在此示例中,未显示实际附件。

Sample Request

<PutObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Key>Nelson</Key> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <ContentLength>5</ContentLength> <AccessControlList> <Grant> <Grantee xsi:type="CanonicalUser"> <ID>a9a7b886d6241bf9b1c61be666e9</ID> <DisplayName>chriscustomer</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> <Grant> <Grantee xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/global/AllUsers<URI> </Grantee> <Permission>READ</Permission> </Grant> </AccessControlList> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2007-05-11T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </PutObject>

Sample Response

<PutObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <PutObjectResponse> <ETag>&quot;828ef3fdfa96f00ad9f27c383fc9ac7f&quot;</ETag> <LastModified>2006-03-01T12:00:00.183Z</LastModified> </PutObjectResponse> </PutObjectResponse>

元素

  • Bucket: 要在其中添加对象的存储桶。

  • Key: 要分配给对象的键。

  • Metadata: 您可以在元数据元素中提供名称-值元数据对。这些将与对象一起存储。

  • ContentLength: 数据的长度,以字节为单位。

  • AccessControlList: 资源的访问控制列表。此元素是可选的。如果忽略,则向请求者授予对该对象的 FULL_CONTROL 访问权限。如果对象已存在,则将替换先前存在的访问控制策略。

响应

  • ETag: 实体标签是对象的 MD5 哈希值,您可以使用它通过 GetObjectExtended 对于对象进行有条件提取。ETag 仅反映对于对象内容的更改,而不反映对其元数据的更改。

  • LastModified: 已保存对象的 Amazon S3 时间戳。

访问控制

要将对象放入存储桶,您必须对存储桶拥有 WRITE 访问权限。

相关资源