3.4. S3 对象操作


作为开发者,您可以通过 Ceph 对象网关通过 Amazon S3 应用编程接口(API)执行对象操作。

下表列出了对象的 Amazon S3 功能操作,以及功能的支持状态。

表 3.3. 对象操作
功能Status

获取对象

支持

head 对象

支持

Put Object Lock

支持

Get Object Lock

支持

Put Object Legal Hold

支持

Get Object Legal Hold

支持

Put Object Retention

支持

Get Object Retention

支持

Put Object Tagging

支持

Get Object Tagging

支持

Delete Object Tagging

支持

放置对象

支持

删除对象

支持

Delete Multiple Objects

支持

获取对象 ACL

支持

放置对象 ACL

支持

复制对象

支持

后对象

支持

选项对象

支持

启动多部分上传

支持

Add a Part to a Multipart Upload

支持

List Parts of a Multipart Upload

支持

assemble Multipart Upload

支持

Copy Multipart Upload

支持

Abort Multipart Upload

支持

Multi-Tenancy

支持

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • RESTful 客户端。

3.4.1. S3 从存储桶获取对象

从存储桶检索对象:

语法

GET /BUCKET/OBJECT HTTP/1.1

添加 versionId 子资源以检索对象的特定版本:

语法

GET /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1

请求 Headers

PartNumber
描述
正在读取的对象的一部分号。这为指定部分启用范围 GET 请求。使用此请求对于仅下载对象的一部分非常有用。
有效值
1 到 10,000 之间的正整数。
必填
range
描述

要检索的对象范围。

注意

不支持每个 GET 请求的多个数据范围。

有效值
Range:bytes=beginbyte-endbyte
必需
if-modified-since
描述
仅当自时间戳起修改时才会获得。
有效值
Timestamp
必需
if-unmodified-since
描述
只有自时间戳起没有修改时才会获得。
有效值
Timestamp
必需
if-match
描述
仅在对象 ETag 匹配 ETag 时才会获得。
有效值
实体标签
必需
if-none-match
描述
仅在对象 ETag 不匹配 ETag 时才会获得。
有效值
实体标签
必需

带有请求标头的 Sytnax

GET /BUCKET/OBJECT?partNumber=PARTNUMBER&versionId=VersionId HTTP/1.1
Host: Bucket.s3.amazonaws.com
If-Match: IfMatch
If-Modified-Since: IfModifiedSince
If-None-Match: IfNoneMatch
If-Unmodified-Since: IfUnmodifiedSince
Range: Range

响应标头

Content-Range
描述
只有在请求中指定范围标头字段时,才会返回数据范围
x-amz-version-id
描述
返回版本 ID 或 null。
x-rgw-replicated-from
描述
返回源区域,以及 Ceph 多区环境中对象复制路径中涉及的任何中间区域。此标头包含在 GetObjectHeadObject 响应中。
x-rgw-replicated-at
描述
返回一个时间戳,指示对象复制到其当前位置。您可以使用带有 Last-Modified 标头的此标头来计算要完成的复制持续时间。
注意

从现在开始,在复制区域上,客户端工具(如 s3cmd 或 curl 验证)支持 x-rgw-replicated-fromx-rgw-replicated-at。除了 radosgw-admin 命令外,您还可以使用这些工具进行验证。使用 radosgw-admin object stat,我们有一个已知问题 BZ-2312552 of missing header key x-rgw-replicated-from

3.4.2. S3 get 对象属性

使用 S3 GetObjectAttributes API 在不返回对象数据的情况下检索对象的元数据。GetObjectAttributes API 结合了 HeadObject 和 ListParts 的功能。它提供在单个请求中由这两个调用返回的所有信息,简化进程并减少所需的 API 调用数量。

语法

GET /BUCKET/OBJECT?attributes&versionId=VersionId

示例

GET /testbucket/testobject?attributes&versionId=testversionid
Host: Bucket.s3.amazonaws.com
x-amz-max-parts: MaxParts
x-amz-part-number-marker: PartNumberMarker
x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
x-amz-server-side-encryption-customer-key: SSECustomerKey
x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
x-amz-request-payer: RequestPayer
x-amz-expected-bucket-owner: ExpectedBucketOwner
x-amz-object-attributes: ObjectAttributes

versionId 子资源检索对象的特定版本。

3.4.2.1. 请求实体

示例

GET /{Key+}?attributes&versionId=VersionId HTTP/1.1
Host: Bucket.s3.amazonaws.com
x-amz-max-parts: MaxParts
x-amz-part-number-marker: PartNumberMarker
x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
x-amz-server-side-encryption-customer-key: SSECustomerKey
x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
x-amz-request-payer: RequestPayer
x-amz-expected-bucket-owner: ExpectedBucketOwner
x-amz-object-attributes: ObjectAttributes

3.4.2.2. 获取请求标头

名称

描述

类型 / Valid 值

必需?

Bucket

包含对象的存储桶的名称。

字符串

对象密钥。

字符串

versionId

用于引用对象的特定版本的版本 ID。

字符串

x-amz-max-parts

设置要返回的最大部分数。

字符串

x-amz-object-attributes

指定您要在响应中返回的 root 级别的字段。未指定的字段不会返回。

ETag,Checksum,ObjectParts,StorageClass, ObjectSize

x-amz-part-number-marker

指定列表应开始的部分。只有具有更高部分号的部分才会被列出。

字符串

3.4.2.3. 响应实体

示例

HTTP/1.1 200
x-amz-delete-marker: DeleteMarker
Last-Modified: LastModified
x-amz-version-id: VersionId
x-amz-request-charged: RequestCharged
<?xml version="1.0" encoding="UTF-8"?>
<GetObjectAttributesOutput>
   <ETag>string</ETag>
   <Checksum>
      <ChecksumCRC32>string</ChecksumCRC32>
      <ChecksumCRC32C>string</ChecksumCRC32C>
      <ChecksumSHA1>string</ChecksumSHA1>
      <ChecksumSHA256>string</ChecksumSHA256>
   </Checksum>
   <ObjectParts>
      <IsTruncated>boolean</IsTruncated>
      <MaxParts>integer</MaxParts>
      <NextPartNumberMarker>integer</NextPartNumberMarker>
      <PartNumberMarker>integer</PartNumberMarker>
      <Part>
         <ChecksumCRC32>string</ChecksumCRC32>
         <ChecksumCRC32C>string</ChecksumCRC32C>
         <ChecksumSHA1>string</ChecksumSHA1>
         <ChecksumSHA256>string</ChecksumSHA256>
         <PartNumber>integer</PartNumber>
         <Size>long</Size>
      </Part>
      ...
      <PartsCount>integer</PartsCount>
   </ObjectParts>
   <StorageClass>string</StorageClass>
   <ObjectSize>long</ObjectSize>
</GetObjectAttributesOutput>

3.4.2.4. 获取响应标头

名称

描述

最后修改

对象的创建日期。

x-amz-delete-marker

指定检索的对象是(true)还是不是(false)一个删除标记。如果为 false,这个响应标头不会出现在响应中。

x-amz-request-charged

如果存在,这表示请求者已成功为请求收费。

x-amz-version-id

对象的版本 ID。

GetObjectAttributesOutput

GetObjectAttributesOutput 参数的 TRoot 级别标签。

checksum

对象的校验和或摘要。ChecksumCRC32 (字符串)对象的 base64 编码、32 位 CRC-32 checksum。这只有在通过对象上传时才会出现。当您在使用多部分上传上传的对象上使用 API 操作时,这个值可能不是完整对象的直接校验和值。相反,它根据每个部分的校验和值进行计算。有关如何使用多部分上传计算校验和的更多信息,请参阅 Amazon S3 用户指南中的检查对象完整性。ChecksumCRC32C (字符串)

对象的 base64 编码的 32 位 CRC-32C checksum。这只有在通过对象上传时才会出现。当您在使用多部分上传上传的对象上使用 API 操作时,这个值可能不是完整对象的直接校验和值。相反,它根据每个部分的校验和值进行计算。有关如何使用多部分上传计算校验和的更多信息,请参阅 Amazon S3 用户指南中的检查对象完整性。

ChecksumSHA1 →(字符串)

对象的 base64 编码的 160 位 SHA-1 摘要。这只有在通过对象上传时才会出现。当您在使用多部分上传上传的对象中使用 API 操作时,这个值可能不是完整对象的直接校验和值。相反,它根据每个部分的校验和值进行计算。有关如何使用多部分上传计算校验和的更多信息,请参阅 Amazon S3 用户指南中的检查对象完整性。

ChecksumSHA256 →(字符串)

对象的 base64 编码的 256 位 SHA-256 摘要。这只有在通过对象上传时才会出现。当您在使用多部分上传上传的对象上使用 API 操作时,这个值可能不是完整对象的直接校验和值。相反,它根据每个部分的校验和值进行计算。有关如何使用多部分上传计算校验和的更多信息,请参阅 Amazon S3 用户指南中的检查对象完整性。

ObjectParts

与多部分上传关联的 object.A 集合的创建日期。ObjectParts →(structure)

与多部分上传关联的部分集合。

TotalPartsCount (整数)

部分总数。

PartNumberMarker (整数)

当前部分的标记。

NextPartNumberMarker (integer)

当列表被截断时,此元素指定了列表中的最后一个部分,以及后续请求中用于 PartNumberMarker 请求参数的值。

MaxParts (整数)

响应中允许的最大部分数。

IsTruncated →(boolean)

指明返回的部分列表是否已截断。值为 true 表示列表已被截断。如果部分数量超过 MaxParts 元素返回的限制,则可以截断列表。

parts →(list)

用于与特定部分相关的元素的容器。响应可以包含零个或多个部分。备注

常规目的 bucket - 对于 GetObjectAttributes,如果额外的校验和(包括 x-amz-checksum-crc32、x-amz-checksum-crc32c、x-amz-checksum-sha1 或 x-amz-checksum-sha256)没有应用到请求中指定的对象,响应不会返回 Part。目录存储桶 - 对于 GetObjectAttributes,无论请求中指定的对象是否应用额外的 checksum,响应都会返回 Part。

(structure)

一个容器,用于与单个部分相关的元素。

PartNumber (整数)

标识部分的部分号。这个值是 1 到 10,000 之间的正整数。

size (长)

上传部分的大小(以字节为单位)。

ChecksumCRC32 (字符串)

此标头可用作数据完整性检查,以验证收到的数据是否与最初发送的数据相同。此标头指定对象的 base64 编码、32 位 CRC-32 checksum。如需更多信息,请参阅 Amazon S3 用户指南中的检查对象完整性。

ChecksumCRC32C (字符串)

对象的 base64 编码的 32 位 CRC-32C checksum。这只有在通过对象上传时才会出现。当您在使用多部分上传上传的对象上使用 API 操作时,这个值可能不是完整对象的直接校验和值。相反,它根据每个部分的校验和值进行计算。有关如何使用多部分上传计算校验和的更多信息,请参阅 Amazon S3 用户指南中的检查对象完整性。

ChecksumSHA1 →(字符串)

对象的 base64 编码的 160 位 SHA-1 摘要。这只有在通过对象上传时才会出现。当您在使用多部分上传上传的对象中使用 API 操作时,这个值可能不是完整对象的直接校验和值。相反,它根据每个部分的校验和值进行计算。有关如何使用多部分上传计算校验和的更多信息,请参阅 Amazon S3 用户指南中的检查对象完整性。

ChecksumSHA256 →(字符串)

对象的 base64 编码的 256 位 SHA-256 摘要。这只有在通过对象上传时才会出现。当您在使用多部分上传上传的对象上使用 API 操作时,这个值可能不是完整对象的直接校验和值。相反,它根据每个部分的校验和值进行计算。有关如何使用多部分上传计算校验和的更多信息,请参阅 Amazon S3 用户指南中的检查对象完整性。

ObjectSize

以字节为单位对象的大小。

StorageClass

提供对象的存储类信息。Amazon S3 为除 S3 Standard 存储类对象以外的所有对象返回此标头。

3.4.3. 检索对象的同步复制标头

返回有关对象的信息。此请求将返回与 Get Object 请求相同的标头信息,但将仅包含元数据,而不包括对象数据有效负载。

检索对象的当前版本:

语法

HEAD /BUCKET/OBJECT HTTP/1.1

添加 versionId 子资源以检索特定版本的信息:

语法

HEAD /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1

请求 Headers

range
描述
要检索的对象范围。
有效值
Range:bytes=beginbyte-endbyte
必需
if-modified-since
描述
仅当自时间戳起修改时才会获得。
有效值
Timestamp
必需
if-match
描述
仅在对象 ETag 匹配 ETag 时才会获得。
有效值
实体标签
必需
if-none-match
描述
仅在对象 ETag 匹配 ETag 时才会获得。
有效值
实体标签
必需

响应标头

x-amz-version-id
描述
返回版本 ID 或 null。
x-rgw-replicated-from
描述
返回源区域,以及 Ceph 多区环境中对象复制路径中涉及的任何中间区域。此标头包含在 GetObjectHeadObject 响应中。
x-rgw-replicated-at
描述
返回一个时间戳,指示对象复制到其当前位置。您可以使用带有 Last-Modified 标头的此标头来计算要完成的复制持续时间。
注意

从现在开始,在复制区域上,客户端工具(如 s3cmd 或 curl 验证)支持 x-rgw-replicated-fromx-rgw-replicated-at。除了 radosgw-admin 命令外,您还可以使用这些工具进行验证。使用 radosgw-admin object stat,我们有一个已知问题 BZ-2312552 of missing header key x-rgw-replicated-from

3.4.4. S3 put 对象锁定

put 对象锁定 API 将锁定配置放在所选存储桶中。使用对象锁定时,您可以使用 Write-Once-Read-Many (WORM)模型存储对象。对象锁定可确保,在一个固定的时间端内或无限期内,对象不会被删除或被覆盖。对象锁定配置中指定的规则默认应用于所选存储桶中放置的每个新对象。

重要

除非创建存储桶时启用对象锁定,否则操作会失败。

语法

PUT /BUCKET?object-lock HTTP/1.1

示例

PUT /testbucket?object-lock HTTP/1.1

请求实体

ObjectLockConfiguration
描述
用于请求的容器。
Type
Container
必填
ObjectLockEnabled
描述
指明此存储桶是否启用了对象锁定配置。
Type
字符串
必填
规则
描述
指定存储桶的对象锁定规则。
Type
Container
必填
DefaultRetention
描述
应用到指定存储桶中的新对象的默认保留周期。
Type
Container
必填
模式
描述
默认对象锁定保留模式。有效值:GOVERNANCE/COMPLIANCE。
Type
Container
必填
Days
描述
为默认保留周期指定的天数。
Type
整数
必填
Years
描述
为默认保留周期指定的年数。
Type
整数
必填

HTTP 响应

400
状态代码
MalformedXML
描述
XML 的格式不正确。
409
状态代码
InvalidBucketState
描述
没有启用存储桶对象锁定。

其它资源

  • 有关此 API 调用的更多信息,请参阅 S3 API

3.4.5. S3 get 对象锁定

get 对象锁定 API 检索存储桶的锁定配置。

语法

GET /BUCKET?object-lock HTTP/1.1

示例

GET /testbucket?object-lock HTTP/1.1

响应实体

ObjectLockConfiguration
描述
用于请求的容器。
Type
Container
必填
ObjectLockEnabled
描述
指明此存储桶是否启用了对象锁定配置。
Type
字符串
必填
规则
描述
对象锁定规则用于指定存储桶。
Type
Container
必填
DefaultRetention
描述
应用到指定存储桶中的新对象的默认保留周期。
Type
Container
必填
模式
描述
默认对象锁定保留模式。有效值:GOVERNANCE/COMPLIANCE。
Type
Container
必填
Days
描述
为默认保留周期指定的天数。
Type
整数
必填
Years
描述
为默认保留周期指定的年数。
Type
整数
必填

其它资源

  • 有关此 API 调用的更多信息,请参阅 S3 API

3.4.8. S3 put 对象保留

放置对象保留 API 将对象保留配置放在对象中。保留周期可在固定时间内保护对象版本。有两种模式:GOVERNANCE 和 COMPLIANCE。这两个保留模式对对象应用不同的保护级别。

注意

在此期间,您的对象为 Write-Once-Read-Many-protected (WORM-protected),且无法覆盖或删除。

语法

PUT /BUCKET/OBJECT?retention&versionId= HTTP/1.1

Example

PUT /testbucket/testobject?retention&versionId= HTTP/1.1

versionId 子资源检索对象的特定版本。

请求实体

保留
描述
用于请求的容器。
类型
Container
必需
模式
描述
指定对象的保留模式。有效值 :GOVERNANCE、COMPLIANCE。
类型
字符串
必需
RetainUntilDate
描述
保留日期。
格式
2020-01-05T00:00:00.000Z
类型
Timestamp
必需

其它资源

  • 有关此 API 调用的更多信息,请参阅 S3 API

3.4.9. S3 get 对象保留

get 对象保留 API 会检索对象上的对象保留配置。

语法

GET /BUCKET/OBJECT?retention&versionId= HTTP/1.1

示例

GET /testbucket/testobject?retention&versionId= HTTP/1.1

versionId 子资源检索对象的特定版本。

响应实体

保留
描述
用于请求的容器。
Type
Container
必需
模式
描述
指定对象的保留模式。有效值: GOVERNANCE/COMPLIANCE
Type
字符串
必需
RetainUntilDate
描述
保留日期。格式:2020-01-05T00:00:00.000Z
Type
Timestamp
必需

其它资源

  • 有关此 API 调用的更多信息,请参阅 S3 API

3.4.10. S3 put 对象标记

put 对象标记 API 将标签与对象相关联。标签是键值对。若要放置任何其他版本的标签,请使用 versionId 查询参数。您必须具有执行 s3:PutObjectTagging 操作的权限。默认情况下,存储桶所有者具有这个权限,并可将此权限授予其他用户。

语法

PUT /BUCKET/OBJECT?tagging&versionId= HTTP/1.1

示例

PUT /testbucket/testobject?tagging&versionId= HTTP/1.1

请求实体

Tagging
描述
用于请求的容器。
Type
Container
必需
TagSet
描述
一组标签集合。
Type
字符串
必需

其它资源

  • 有关此 API 调用的更多信息,请参阅 S3 API

3.4.11. S3 get 对象标记

get 对象标记 API 返回对象标签。默认情况下,GET 操作返回对象当前版本的信息。

注意

对于版本化的存储桶,您可以在存储桶中拥有多个版本的对象。要检索任何其他版本的标签,请在请求中添加 versionId 查询参数。

语法

GET /BUCKET/OBJECT?tagging&versionId= HTTP/1.1

示例

GET /testbucket/testobject?tagging&versionId= HTTP/1.1

其它资源

  • 有关此 API 调用的更多信息,请参阅 S3 API

3.4.12. S3 删除对象标记

删除对象标记 API 从指定对象中删除整个标签集。您必须具有执行 s3:DeleteObjectTagging 操作的权限才能使用此操作。

注意

要删除特定对象版本的标签,请在请求中添加 versionId 查询参数。

语法

DELETE /BUCKET/OBJECT?tagging&versionId= HTTP/1.1

示例

DELETE /testbucket/testobject?tagging&versionId= HTTP/1.1

其它资源

  • 有关此 API 调用的更多信息,请参阅 S3 API

3.4.13. S3 将对象添加到存储桶

添加对象到存储桶。您必须在存储桶上具有写入权限才能执行此操作。

语法

PUT /BUCKET/OBJECT HTTP/1.1

请求 Headers

content-md5
描述
消息的 base64 编码 MD-5 哈希。
有效值
字符串无默认值或限制。
必需
content-type
描述
标准 MIME 类型。
有效值
任何 MIME 类型。默认:binary/octet-stream
必需
x-amz-meta-<…​>*
描述
用户元数据。与对象存储。
有效值
字符串最多 8kb。无默认值。
必需
x-amz-acl
描述
可以处理 ACL。
有效值
private,public-read,public-read-write,authenticated-read
必需

响应标头

x-amz-version-id
描述
返回版本 ID 或 null。

3.4.14. S3 删除对象

删除对象。要求在包含存储桶上设置 WRITE 权限。

删除对象。如果对象版本控制为 on,它会创建一个标记。

语法

DELETE /BUCKET/OBJECT HTTP/1.1

要在对对象进行版本控制时删除对象,您必须指定 versionId 子资源以及要删除的对象的版本。

DELETE /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1

3.4.15. S3 删除多个对象

此 API 调用从存储桶中删除多个对象。

语法

POST /BUCKET/OBJECT?delete HTTP/1.1

3.4.16. S3 获取对象的访问控制列表(ACL)

返回对象的当前版本的 ACL:

语法

GET /BUCKET/OBJECT?acl HTTP/1.1

添加 versionId 子资源以检索特定版本的 ACL:

语法

GET /BUCKET/OBJECT?versionId=VERSION_ID&acl HTTP/1.1

响应标头

x-amz-version-id
描述
返回版本 ID 或 null。

响应实体

AccessControlPolicy
描述
用于响应的容器。
Type
Container
AccessControlList
描述
ACL 信息的容器。
Type
Container
所有者
描述
bucket 所有者的 IDDisplayName 的容器。
Type
Container
ID
描述
bucket 所有者的 ID。
Type
字符串
DisplayName
描述
bucket 所有者的显示名称。
Type
字符串
Grant
描述
适用于 GranteePermission 的容器。
Type
Container
Grantee
描述
允许权限的用户的 DisplayNameID 的容器。
Type
Container
权限
描述
提供给 Grantee 存储桶的权限。
Type
字符串

3.4.17. S3 设置对象的访问控制列表(ACL)

为对象的当前版本设置对象 ACL。

语法

PUT /BUCKET/OBJECT?acl

请求实体

AccessControlPolicy
描述
用于响应的容器。
Type
Container
AccessControlList
描述
ACL 信息的容器。
Type
Container
所有者
描述
bucket 所有者的 IDDisplayName 的容器。
Type
Container
ID
描述
bucket 所有者的 ID。
Type
字符串
DisplayName
描述
bucket 所有者的显示名称。
Type
字符串
Grant
描述
适用于 GranteePermission 的容器。
Type
Container
Grantee
描述
允许权限的用户的 DisplayNameID 的容器。
Type
Container
权限
描述
提供给 Grantee 存储桶的权限。
Type
字符串

3.4.18. S3 复制一个对象

要复制对象,请使用 PUT 并指定目标存储桶和对象名称。

语法

PUT /DEST_BUCKET/DEST_OBJECT HTTP/1.1
x-amz-copy-source: SOURCE_BUCKET/SOURCE_OBJECT

请求 Headers

x-amz-copy-source
描述
源 bucket 名称 + 对象名称。
有效值
BUCKET/OBJECT
必需
x-amz-acl
描述
可以处理 ACL。
有效值
private,public-read,public-read-write,authenticated-read
必需
x-amz-copy-if-modified-since
描述
仅在自时间戳以来修改时才复制。
有效值
Timestamp
必需
x-amz-copy-if-unmodified-since
描述
仅在自时间戳起未修改时才复制。
有效值
Timestamp
必需
x-amz-copy-if-match
描述
只有在对象 ETag 匹配 ETag 时复制。
有效值
实体标签
必需
x-amz-copy-if-none-match
描述
只有在对象 ETag 匹配 ETag 时复制。
有效值
实体标签
必需

响应实体

CopyObjectResult
描述
用于响应元素的容器。
Type
Container
LastModified
描述
源对象的最后修改日期。
Type
Date
Etag
描述
新对象的 ETag。
Type
字符串

3.4.19. S3 使用 HTML 表单向存储桶添加对象

使用 HTML 表单将对象添加到存储桶。您必须在存储桶上具有写入权限才能执行此操作。

语法

POST /BUCKET/OBJECT HTTP/1.1

3.4.20. S3 确定请求选项

用于确定实际请求是否可以通过特定原始卷、HTTP 方法和标头发送的 preflight 请求。

语法

OPTIONS /OBJECT HTTP/1.1

3.4.21. S3 启动多部分上传

启动多部分上传过程。返回 UploadId,您可以在添加额外部分、列出部分和完成或带出多部分上传时指定。

语法

POST /BUCKET/OBJECT?uploads

请求 Headers

content-md5
描述
消息的 base64 编码 MD-5 哈希。
有效值
字符串无默认值或限制。
必需
content-type
描述
标准 MIME 类型。
有效值
任何 MIME 类型。默认: binary/octet-stream
必需
x-amz-meta-<…​>
描述
用户元数据。与对象存储。
有效值
字符串最多 8kb。无默认值。
必需
x-amz-acl
描述
可以处理 ACL。
有效值
private,public-read,public-read-write,authenticated-read
必需

响应实体

InitiatedMultipartUploadsResult
描述
用于结果的容器。
Type
Container
Bucket
描述
将接收对象内容的存储桶。
Type
字符串
描述
key 请求参数指定的密钥(若有)。
Type
字符串
UploadId
描述
upload-id 请求参数指定的 ID,标识多部分上传(如果有)。
Type
字符串

3.4.22. S3 在多部分上传中添加部分

添加部分到多部分上传。

指定 uploadId 子资源以及上传 ID,将部分添加到多部分上传:

语法

PUT /BUCKET/OBJECT?partNumber=&uploadId=UPLOAD_ID HTTP/1.1

可能会返回以下 HTTP 响应:

HTTP 响应

404
状态代码
NoSuchUpload
描述
指定 upload-id 与此对象上启动的任何上传都不匹配。

3.4.23. S3 列出多部分上传

指定 uploadId 子资源以及上传 ID 来列出多部分上传:

语法

GET /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1

响应实体

InitiatedMultipartUploadsResult
描述
用于结果的容器。
Type
Container
Bucket
描述
将接收对象内容的存储桶。
Type
字符串
描述
key 请求参数指定的密钥(若有)。
Type
字符串
UploadId
描述
upload-id 请求参数指定的 ID,标识多部分上传(如果有)。
Type
字符串
initiator
描述
包含开始上传的用户的 IDDisplayName
Type
Container
ID
描述
启动器的 ID。
Type
字符串
DisplayName
描述
启动器的显示名称。
Type
字符串
所有者
描述
拥有上传对象的用户的 IDDisplayName 的容器。
Type
Container
StorageClass
描述
用于存储生成的对象的方法。STANDARDREDUCED_REDUNDANCY
Type
字符串
PartNumberMarker
描述
如果 IsTruncatedtrue,则后续请求中使用的部分标记。在列表前面。
Type
字符串
NextPartNumberMarker
描述
如果 IsTruncatedtrue,则后续请求中使用的下一部分标记。列表的末尾。
Type
字符串
IsTruncated
描述
如果为 true,则仅返回对象上传内容的子集。
Type
布尔值
Part
描述
Key, Part, InitiatorOwner, StorageClass, 和 Initiated 元素的容器。
Type
Container
PartNumber
描述
Key, Part, InitiatorOwner, StorageClass, 和 Initiated 元素的容器。
Type
整数
ETag
描述
部分的实体标签。
Type
字符串
大小
描述
上传部分的大小。
Type
整数

3.4.24. S3 汇编上传的部分

装配已上传的部分并创建新的对象,从而完成多部分上传。

指定 uploadId 子资源以及上传 ID 以完成多部分上传:

语法

POST /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1

请求实体

CompleteMultipartUpload
描述
由一个或多个部分组成的容器。
Type
Container
必需
Part
描述
适用于 PartNumberETag 的容器。
Type
Container
必需
PartNumber
描述
部分的标识符。
Type
整数
必需
ETag
描述
部分的实体标签。
Type
字符串
必需

响应实体

CompleteMultipartUploadResult
描述
用于响应的容器。
Type
Container
位置
描述
新对象的资源标识符(path)。
Type
URI
bucket
描述
包含新对象的存储桶的名称。
Type
字符串
描述
对象的密钥。
Type
字符串
ETag
描述
新对象的实体标签。
Type
字符串

3.4.25. S3 复制多部分上传

通过从现有对象复制数据作为数据源来上传部分。

指定 uploadId 子资源以及上传 ID,以执行多部分上传副本:

语法

PUT /BUCKET/OBJECT?partNumber=PartNumber&uploadId=UPLOAD_ID HTTP/1.1
Host: cname.domain.com

Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET

请求 Headers

x-amz-copy-source
描述
源存储桶名称和对象名称。
有效值
BUCKET/OBJECT
必需
x-amz-copy-source-range
描述
从源对象复制的字节数。
有效值
范围: bytes=first-last,其中第一个和最后一个是要复制的零字节偏移。例如,bytes=0-9 表示您想要复制源的前 10 字节。
必需

响应实体

CopyPartResult
描述
用于所有响应元素的容器。
Type
Container
ETag
描述
返回新部分的 ETag。
Type
字符串
LastModified
描述
返回部分上次修改的日期。
Type
字符串

其它资源

3.4.26. S3 中止多部分上传

中止多部分上传。

指定 uploadId 子资源以及上传 ID 以中止多部分上传:

语法

DELETE /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1

3.4.27. S3 Hadoop 互操作性

对于需要 Hadoop 分布式文件系统(HDFS)访问的数据分析应用,可以使用用于 Hadoop 的 Apache S3A 连接器来访问 Ceph 对象网关。S3A 连接器是一种开源工具,它将 S3 兼容对象存储呈现为 HDFS 文件系统,具有 HDFS 文件系统对应用程序进行读写语义,同时数据存储在 Ceph 对象网关中。

Ceph 对象网关与 Hadoop 2.7.3 附带的 S3A 连接器完全兼容。

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.