注意

本文档适用于 Ceph 的开发版本。

对象操作

放置对象

向存储桶添加一个对象。您必须拥有对该存储桶的写入权限才能执行此操作。

语法

PUT /{bucket}/{object} HTTP/1.1

请求头

名称

描述

有效值

必需

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

复制对象

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

Syntax

PUT /{dest-bucket}/{dest-object} HTTP/1.1
x-amz-copy-source: {source-bucket}/{source-object}

请求头

名称

描述

有效值

必需

x-amz-copy-source

源存储桶名称 + 对象名称。

{bucket}/{obj}

x-amz-acl

预设ACL。

private, public-read, public-read-write, authenticated-read

x-amz-copy-if-modified-since

仅在时间戳之后修改过才复制。

时间戳

x-amz-copy-if-unmodified-since

仅在时间戳之后未修改才复制。

时间戳

x-amz-copy-if-match

仅当对象ETag匹配ETag时才复制。

实体标签

x-amz-copy-if-none-match

仅当对象ETag不匹配时才复制。

实体标签

Response Entities

名称

类型

描述

CopyObjectResult

Container

响应元素的容器。

LastModified

日期

源对象的最后修改日期。

Etag

String

新对象的ETag。

移除对象

移除一个对象。要求对包含该对象的存储桶设置WRITE权限。

语法

DELETE /{bucket}/{object} HTTP/1.1

请求头

名称

描述

有效值

必需

x-amz-delete-if-unmodified-since

仅在时间戳之后未修改才删除

一个日期时间字符串

获取对象

从RADOS中的存储桶检索一个对象。

Syntax

GET /{bucket}/{object} HTTP/1.1

请求头

名称

描述

有效值

必需

range

要检索的对象范围。

Range: bytes=beginbyte-endbyte

if-modified-since

仅在时间戳之后修改过才获取。

时间戳

if-unmodified-since

仅在时间戳之后未修改才获取。

时间戳

if-match

仅当对象ETag匹配ETag时才获取。

实体标签

if-none-match

仅当对象ETag不匹配时才获取。

实体标签

响应头

名称

描述

Content-Range

数据范围,仅当请求中指定了range头字段时才返回

获取对象信息

返回关于对象的信息。此请求将返回与Get Object请求相同的头信息,但只包含元数据,不包含对象数据负载。

语法

HEAD /{bucket}/{object} HTTP/1.1

请求头

名称

描述

有效值

必需

range

要检索的对象范围。

Range: bytes=beginbyte-endbyte

if-modified-since

仅在时间戳之后修改过才获取。

时间戳

if-unmodified-since

仅在时间戳之后未修改才获取。

时间戳

if-match

仅当对象ETag匹配ETag时才获取。

实体标签

if-none-match

仅当对象ETag不匹配时才获取

实体标签

获取对象ACL

语法

GET /{bucket}/{object}?acl HTTP/1.1

Response Entities

名称

类型

描述

AccessControlPolicy

Container

响应的容器。

AccessControlList

Container

ACL信息的容器。

Owner

Container

对象所有者的IDDisplayName的容器。

ID

String

对象所有者的ID。

DisplayName

String

对象所有者的显示名称。

Grant

Container

GranteePermission的容器。

Grantee

Container

接收权限授予的用户的DisplayNameID的容器。

Permission

String

授予Grantee对象的权限。

设置对象ACL

语法

PUT /{bucket}/{object}?acl

请求实体

名称

类型

描述

AccessControlPolicy

Container

响应的容器。

AccessControlList

Container

ACL信息的容器。

Owner

Container

对象所有者的IDDisplayName的容器。

ID

String

对象所有者的ID。

DisplayName

String

对象所有者的显示名称。

Grant

Container

GranteePermission的容器。

Grantee

Container

接收权限授予的用户的DisplayNameID的容器。

Permission

String

授予Grantee对象的权限。

发起多部分上传

发起多部分上传过程。

Syntax

POST /{bucket}/{object}?uploads

请求头

名称

描述

有效值

必需

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

Response Entities

名称

类型

描述

InitiatedMultipartUploadsResult

Container

结果的容器。

Bucket

String

将接收对象内容的存储桶。

密钥

String

key请求参数指定(如果有)的密钥。

UploadId

String

upload-id请求参数指定(如果有)的标识多部分上传的ID。

多部分上传部分

语法

PUT /{bucket}/{object}?partNumber=&uploadId= HTTP/1.1

HTTP响应

可能返回以下HTTP响应

HTTP状态

状态码

描述

404

NoSuchUpload

指定的upload-id与此对象上发起的任何上传都不匹配

列出多部分上传部分

Syntax

GET /{bucket}/{object}?uploadId=123 HTTP/1.1

响应实体

名称

类型

描述

ListPartsResult

Container

结果的容器。

Bucket

String

将接收对象内容的存储桶。

密钥

String

key请求参数指定(如果有)的密钥。

UploadId

String

upload-id请求参数指定(如果有)的标识多部分上传的ID。

Initiator

Container

包含发起上传的用户的IDDisplayName

ID

String

发起者的ID。

DisplayName

String

发起者的显示名称。

Owner

Container

包含上传对象所有者的IDDisplayName的容器。

StorageClass

String

用于存储结果对象的方法。STANDARDREDUCED_REDUNDANCY

PartNumberMarker

String

如果IsTruncatedtrue,在后续请求中使用的部分标记。位于列表之前。

NextPartNumberMarker

String

如果IsTruncatedtrue,在后续请求中使用的下一个部分标记。位于列表末尾。

MaxParts

整数

根据max-parts请求参数指定,响应中允许的最大部分数。

IsTruncated

Boolean

如果为true,则只返回对象上传内容的一部分子集。

Part

Container

LastModifiedPartNumberETagSize元素的容器。

LastModified

日期

上传部分的日期和时间。

PartNumber

整数

部分的识别号。

ETag

String

部分的实体标签。

大小

整数

上传部分的大小。

完成多部分上传

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

语法

POST /{bucket}/{object}?uploadId= HTTP/1.1

请求实体

名称

类型

描述

必需

CompleteMultipartUpload

Container

由一个或多个部分组成的容器。

Part

Container

PartNumberETag的容器。

PartNumber

整数

部分的标识符。

ETag

String

部分的实体标签。

响应实体

名称

类型

描述

CompleteMultipartUploadResult

Container

响应的容器。

Location

URI

新对象的资源标识符(路径)。

Bucket

String

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

密钥

String

对象的键。

ETag

String

新对象的实体标签。

中止多部分上传

语法

DELETE /{bucket}/{object}?uploadId= HTTP/1.1

追加对象

向对象追加数据。您必须拥有对该存储桶的写入权限才能执行此操作。它用于以追加模式上传文件。Append Object操作创建的对象的类型是可追加对象,而Put Object操作上传的对象的类型是普通对象。如果存储桶版本控制已启用或暂停,则不能使用Append Object。 同步对象在多站点中将变为普通对象,但您仍然可以追加到原始对象。 可追加对象禁用压缩和加密功能。

语法

PUT /{bucket}/{object}?append&position= HTTP/1.1

请求头

名称

描述

有效值

必需

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-rgw-next-append-position

下一个追加对象的位置

HTTP响应

可能返回以下HTTP响应

HTTP状态

状态码

描述

409

PositionNotEqualToLength

指定位置与对象长度不匹配

409

ObjectNotAppendable

指定对象不可追加

409

InvalidBucketstate

存储桶版本控制已启用或暂停

放置对象保留

在对象上设置对象保留配置。

语法

PUT /{bucket}/{object}?retention&versionId= HTTP/1.1

请求实体

名称

类型

描述

必需

Retention

Container

请求的容器。

Mode

String

指定对象的保留模式。有效值:GOVERNANCE/COMPLIANCE | Yes

RetainUntilDate

时间戳

保留日期。格式:2020-01-05T00:00:00.000Z | Yes

获取对象保留

获取对象上的对象保留配置。

语法

GET /{bucket}/{object}?retention&versionId= HTTP/1.1

响应实体

名称

类型

描述

必需

Retention

Container

请求的容器。

Mode

String

指定对象的保留模式。有效值:GOVERNANCE/COMPLIANCE | Yes

RetainUntilDate

时间戳

保留日期。格式:2020-01-05T00:00:00.000Z | Yes

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入