1.术语、码表

名称 说明 备注
ACL 访问控制列表。用于控制用户、组对桶或对象的访问权限,可选值如下:
READ : 读取桶中对象权限
READ_ACP : 写读取桶的ACL
WRITE : 向桶中写入对象
WRITE_ACP :   可修改桶的ACL
FULL_CONTROL   : 完全控制
 
系统元数据 对象的大小,对象key,创建时间,最后修改时间,hash值等信息;  
用户自定义元数据 用户可以为对象创建“用户自定义元数据”。格式为:key=value。可以有多个。  
桶/命名空间 对象存储空间的逻辑划分方式。对象存储在桶中。  
HS3 HCP的S3接口  
AWS S3 亚马逊的S3接口  
AuthenticatedU sers 组用户。表示在桶中注册的用户,有帐号和密码。  
AllUsers 组用户。未在系统中注册的用户,即任意访问者。  
CanonicalUser 非组用户。表示某个特定的用户。  
认证头信息 认证信息格式:Authorization: AWS access-key:signature access-key 是桶用户名的base64编码 Signature 是桶用户密码的md5加密
举例:Authorization: AWS bmV0c2tpbGw=:PfFBBFRoWM/Fn31wuH5+UNPyh4s=
 

2.通用请求头部

名称 描述
Host 请求的主机,用于标识租户或桶。
对于租户,格式为:tenant-name.hcp-domain name 对于桶,格式为:bucket-name.tenant-name.hcp-domain name
Authorization 认证信息。格式:Authorization: AWS access-key:signature。 access-key:桶用户名进行 base64 编码; signature:桶用户密码进行 md5 加密;
Date 当前请求的时间和日期。格式:DDD dd MMM yyyy HH:mm:ss GMT
举例:Wed, 19 Oct 2016 03:04:30 GMT
Content-Type 请求体的内容类型。

3.通用响应头部

名称 描述
Content-Length 响应体的字节数。如果没有响应体,此值为 0 。如:"Content-Length:0"
Content-Type 响应体类型及格式。如:"Content-Type: application/xml;charset=UTF-8"
Date 响应的时间和日期。格式:DDD dd MMM yyyy HH:mm:ss GMT
如:"Date: Wed, 19 Oct 2016 06:48:03 GMT"
Server 执行请求的服务端版本。默认为 HCP 的版本,如:"Server: HCP V7.2.0.26"
Transfer-Encoding 分块传输。如:"Transfer-Encoding: chunked"

4.桶操作

4.1检测桶是否存在

名称 headBucket
描述 检测桶是否存在
请求语法 HEAD / HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Date: date
请求参数
请求头部 Host 请求的主机,bucketname 是要检测的桶名称
Autho
rizatio
n
认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
请求体
响应头部 Server 响应的服务器版本号。
Conte nt-Len gth 响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
响应体
响应状态码 200 桶存在。
403 1、认证信息不正确;
2、桶存在,当前请求用户没有读权限;
3、桶没有开启 HS3 协议;
404 桶不存在。
500 请求超时或内部错误,请重试。
503 服务无效。原因可能如下:
1、系统正在重启;
2、运维中;
    3、升级中;
请求示例 HEAD / HTTP/1.1
Host: testnamespace.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:MEbc5/Gcgfwj5h1cn5oSifFoDUA=
Date: Wed, 19 Oct 2016 03:04:30 GMT
响应示例 HTTP/1.1 200 OK
Date: Wed, 19 Oct 2016 03:04:31 GMT
Server: HCP V7.2.0.26
Content-Length: 0
规则约束

4.2创建桶

名称 createBucket
描述 创建桶
请求语法 PUT / HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Date: date
请求参数
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
请求体
响应头部 Server 响应的服务器版本号。
Content-
Length
响应体长度。参考“通用响应头”。
  Date 响应时间。参考“通用响应头”。
Location 创建成功的桶名称。
响应体 1、当桶存在,且桶的创建者是桶的所有者时。返回响应体,表明桶已经存在。如下:
<?xml version='1.0' encoding='UTF-8'?>
<Error>
<Code>BucketAlreadyOwnedByYou</Code>
<Message>Your previous request to create the named bucket succeeded and you already own it</Message>
<RequestId>1476858672246</RequestId>
<HostId>aGNwLWRlbW8uaGNwZGVtby5jb206MjIw</HostId>
</Error>
2、当桶不存在,且创建成功,无响应体。
响应状态码 200 1、桶创建成功;
2、桶存在,并且你是此桶的所有者;
400 1、桶名格式不正确;
2、桶 ACL 权限设置不正确;
3、桶的数量超过最大值,最多只能 10000 个桶;
4、没有足够的空间可以创建桶,桶的默认空间最小是 50G;
403 1、认证信息不正确;
2、创建都没有创建桶的权限;
3、租户没有开启 HS3 API;
409 冲突。桶已存在,创建都不是桶的所有者;
503 服务无效。原因可能如下:
4、系统正在重启;
5、运维中;
6、升级中;
  500 请求超时或内部错误,请重试。
请求示例 PUT / HTTP/1.1
Host: testnamespace.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:MEbc5/Gcgfwj5h1cn5oSifFoDUA=
Date: Wed, 19 Oct 2016 03:04:30 GMT
响应示例 HTTP/1.1 200 OK
Date: Wed, 19 Oct 2016 03:04:31 GMT
Server: HCP V7.2.0.26
Content-Length: 0
Location: /testnamespace3
规则约束 1、桶名称规则
a)         长度是 1 到 63;
b)         由字符或数字组合构成,可以包含符号“-”,但此符号不能放在首尾;不允许包含空格;
c)         不区分大小写,默认应是小写的;
2、桶的所有者
a)         创建者默认是此桶所有者(owner);
b)         桶所有者可以变更;
       

4.3列出桶

名称 listBuckets
描述 列出桶
请求语法 GET / HTTP/1.1
  Host: tenant-name.hcp-domain name
Authorization: authorization string
Date: date
请求参数
请求头部 Host 请求的主机。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
请求体
响应头部 Server 响应的服务器版本号。
Content-
Type
响应体类型及编码。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
Transfer-
Encoding
响应体分块传输。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<!--桶所有者信息-->
<Owner>
<!--桶所有者 ID-->
<ID>bucket-owner-user-id</ID>
<DisplayName>bucket-owner-username</DisplayName>
</Owner> <!--桶信息-->
<Buckets>
<Bucket>
<!--桶名称-->
  <Name>bucket-name</Name>
<CreationDate>bucket-creation-date-and-time</CreationDate>
</Bucket>
<!--如果有多个桶,显示多个桶的信息-->
......
</Buckets>
</ListAllMyBucketsResult>
响应状态码 200 成功;
403 1、认证信息不正确;
2、租户不存在;
3、租户没有开启 HS3 API;
503 服务无效。原因可能如下:系统正在重启;运维中;升级中;
500 请求超时或内部错误,请重试。
请求示例 GET / HTTP/1.1
Host: t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:MEbc5/Gcgfwj5h1cn5oSifFoDUA=
Date: Wed, 19 Oct 2016 03:04:30 GMT
响应示例 HTTP/1.1 200 OK
Date: Wed, 19 Oct 2016 03:04:31 GMT
Server: HCP V7.2.0.26
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示例 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
  <Buckets>
<Bucket>
<Name>n1</Name>
<CreationDate>2016-08-29T10:22:06.534Z</CreationDate>
</Bucket>
<Bucket>
<Name>source</Name>
<CreationDate>2016-08-31T01:08:31.918Z</CreationDate>
</Bucket>
<Bucket>
<Name>testnamespace</Name>
<CreationDate>2016-09-28T01:40:45.757Z</CreationDate>
</Bucket>
<Bucket><Name>testnamespace3</Name>
<CreationDate>2016-10-20T03:59:53.801Z</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
规则约束
       

4.4列出桶对象

名称 listObjects
描述 列出桶对象
请求语法 GET /?prefix=&delimiter=/     HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Date: date
Content-Type: application/octet-stream
请求参数 prefix 对象前缀,指定此参数可列出所有以此前缀开头的对象; delimiter 分隔符,批定此参数为“/”,可以确保不列出子目录中的对象;
请求头部 Host 请求的主机,bucketname 是要检测的桶名称
Authorization 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-Type 请求体内容类型。
请求体
响应头部 Server 响应的服务器版本号。
Content-Type 响应体类型。如:application/xml;charset=UTF-8
Date 响应时间。参考“通用响应头”。
Transfer-Encod ing Chunked。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>桶名称</Name>
<Prefix>对象前缀</Prefix>
<Marker>上一返回的对象列表中,最后一个对象的 key;用于分页返回结果。如果此值为空,则返回第一页</Marker>
<MaxKeys>返回的对象数</MaxKeys>
<Delimiter>如果指定为“/”可以限定不返回子目录对象;如果不指定,返回所有满足条件的对象</Delimiter>
  <IsTruncated>所有匹配的对象是否已全部返回,true 代表还有对象没有返回,false 代表所有对象都返回了</IsTruncated>
<Contents>
<Key>对象 key</Key>
<LastModified>对象最后修改时间</LastModified>
<ETag>对象标识</ETag>
<Size>对象大小</Size>
<Owner>
<ID>对象所有者 ID</ID>
<DisplayName>对象所有者名称</DisplayName></Owner>
<StorageClass>存储方式,值 STANDARD</StorageClass>
</Contents>
<CommonPrefixes>
<Prefix>通用前缀,这一般为一个子目录,子目录还有对象</Prefix>
</CommonPrefixes>
</ListBucketResult>
响应状态码 200 成功
403 1、认证信息不正确;
2、当前请求用户不是桶的所有者;
3、桶没有开启 HS3 协议;
404 桶不存在。
500 请求超时或内部错误,请重试。
503 服务无效。原因可能如下:
1、系统正在重启;
    2、运维中;
3、升级中;
请求示例 GET /?prefix=13/&delimiter=/ HTTP/1.1
Host: testnamespace.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:rgOMBkxNkGKKDtDjaDmB4unECzg=
Date: Thu, 20 Oct 2016 11:19:49 GMT
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 09:05:28 GMT
Server: HCP V7.2.0.26
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示例 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>testnamespace</Name>
<Prefix>13/</Prefix>
<Marker></Marker>
<MaxKeys>1000</MaxKeys>
<Delimiter>/</Delimiter>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>13/</Key>
<LastModified>2016-10-19T14:05:00.112Z</LastModified>
<ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag>
<Size>0</Size>
<Owner><ID>nobody</ID><DisplayName>nobody</DisplayName></Owner>
  <StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>13/52.0.2743.116.manifest</Key>
<LastModified>2016-10-20T10:57:50.154Z</LastModified>
<ETag>"764bdbd95244e2e8f3bd91697a234db2"</ETag>
<Size>252</Size>
<Owner><ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID><DisplayName>ne tskill</DisplayName></Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<CommonPrefixes>
<Prefix>13/123/</Prefix>
</CommonPrefixes>
</ListBucketResult>
规则约束  

4.5列出桶对象(分页)

名称 listObjects
描述 列出桶对象
请求语法 GET /?prefix=&marker=&max-keys=&delimiter=/ HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Date: date
  Content-Type: application/octet-stream
请求参数 prefix 对象前缀,指定此参数可列出所有以此前缀开头的对象; delimiter        分隔符,批定此参数为“/”,可以确保不列出子目录中的对象; marker        上一次返回的对象列表中,最后一个对象 key;如果不指定或为空则返回第一页对象; max-keys       指定一次返回几个对象;
请求头部 Host 请求的主机,bucketname 是要检测的桶名称
Authorization 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-Type 请求体内容类型。
请求体
响应头部 Server 响应的服务器版本号。
Content-Type 响应体类型。如:application/xml;charset=UTF-8
Date 响应时间。参考“通用响应头”。
Transfer-Encod ing Chunked。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>桶名称</Name>
<Prefix>对象前缀</Prefix>
<Marker>上一返回的对象列表中,最后一个对象的 key;用于分页返回结果。如果此值为空,则返回第一页</Marker>
<MaxKeys>返回的对象数</MaxKeys>
<Delimiter>如果指定为“/”可以限定不返回子目录对象;如果不指定,返回所有满足条件的对象</Delimiter>
<IsTruncated>所有匹配的对象是否已全部返回,true 代表还有对象没有返回,false 代表所有对象都返回了</IsTruncated>
  <Contents>
<Key>对象 key</Key>
<LastModified>对象最后修改时间</LastModified>
<ETag>对象标识</ETag>
<Size>对象大小</Size>
<Owner>
<ID>对象所有者 ID</ID>
<DisplayName>对象所有者名称</DisplayName></Owner>
<StorageClass>存储方式,值 STANDARD</StorageClass>
</Contents>
<CommonPrefixes>
<Prefix>通用前缀,这一般为一个子目录,子目录还有对象</Prefix>
</CommonPrefixes>
</ListBucketResult>
响应状态码 200 成功
403 1、认证信息不正确;
2、当前请求用户不是桶的所有者;
3、桶没有开启 HS3 协议;
404 桶不存在。
500 请求超时或内部错误,请重试。
503 服务无效。原因可能如下:
1、系统正在重启;
2、运维中;
3、升级中;
请求示例 GET /?prefix=13/&marker=13/123/&max-keys=2&delimiter=/ HTTP/1.1
Host: testnamespace.t1.hcp-demo.hcpdemo.com
  Authorization: AWS bmV0c2tpbGw=:rgOMBkxNkGKKDtDjaDmB4unECzg=
Date: Thu, 20 Oct 2016 11:19:49 GMT
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 09:05:28 GMT
Server: HCP V7.2.0.26
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示例 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>testnamespace</Name>
<Prefix>13/</Prefix>
<Marker>13/123/</Marker>
<MaxKeys>2</MaxKeys>
<Delimiter>/</Delimiter>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>13/</Key>
<LastModified>2016-10-19T14:05:00.112Z</LastModified>
<ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag>
<Size>0</Size>
<Owner><ID>nobody</ID><DisplayName>nobody</DisplayName></Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
  <Key>13/52.0.2743.116.manifest</Key>
<LastModified>2016-10-20T10:57:50.154Z</LastModified>
<ETag>"764bdbd95244e2e8f3bd91697a234db2"</ETag>
<Size>252</Size>
<Owner><ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID><DisplayName>ne tskill</DisplayName></Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<CommonPrefixes>
<Prefix>13/123/</Prefix>
</CommonPrefixes>
</ListBucketResult>
规则约束  

4.6开启、关闭、暂停桶版本

名称 setBucketVersioningConfiguration
描述 开启、关闭、暂停桶版本
请求语法 PUT /?versioning HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: application/octet-stream
Content-Length: 请求体长度
Date: date
请求参数 versioning
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
  Date 请求时间。参考“通用请求头”。
Content-
Type
application/octet-stream
Content-
Length
请求体长度
请求体 <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<!--开启、关闭版本需要设置的值,共有三值可选:ENABLED 、OFF 、
SUSPENDED-->
<Status>开启,关闭,暂停三个可选值</Status>
</VersioningConfiguration>
响应头部 Server 响应的服务器版本号。
Location 桶名称。
Date 响应时间。参考“通用响应头”。
Content-
Length
响应体长度。
响应体
响应状态码 200 成功
400 请求体的 XML 格式不正确或开启、关闭、暂停版本功能的值(三值可
选:ENABLED 、OFF 、SUSPENDED)不正确。
403 1、认证信息不正确;
2、当前请求用户不是桶的 owner;
3、桶没有开启 HS3 API;
404 桶不存在;
503 服务无效。原因可能如下:
a)         系统正在重启;
b)         运维中;
c)         升级中;
  500 请求超时或内部错误,请重试。
请求示例 PUT /?versioning HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:8zPBDS9bC8OlapKoptyJJQVPiiw=
Date: Thu, 20 Oct 2016 08:12:00 GMT
Content-Type: application/octet-stream
Content-Length: 123
Connection: Keep-Alive
Expect: 100-continue
请求体示例 <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>Enabled</Status>
</VersioningConfiguration>
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 08:12:00 GMT
Server: HCP V7.2.0.26
Location: /testnamespace3
Content-Length: 0
规则约束  
       

4.7查看桶版本

名称 getBucketVersioningConfiguration
描述 得到桶的版本信息
请求语法 GET /?versioning HTTP/1.1
Host: tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: application/octet-stream
Date: date
请求参数 versioning
请求头部 Host 请求的主机。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Type
application/octet-stream
请求体
响应头部 Server 响应的服务器版本号。
Content-
Type
响应体类型及编码。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
Transfer-
Encoding
响应体分块传输。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>桶的版本信息,三个可能值(ENABLED 、OFF 、SUSPENDED)
</Status>
</VersioningConfiguration>
响应状态码 200 成功;
403 1、认证信息不正确;
2、当前用户不是桶的 owner;
3、租户或桶没有开启 HS3 API;
503 服务无效。原因可能如下:系统正在重启;运维中;升级中;
500 请求超时或内部错误,请重试。
404 桶不存在。
请求示例 GET / HTTP/1.1
  Host: t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:MEbc5/Gcgfwj5h1cn5oSifFoDUA=
Date: Wed, 19 Oct 2016 03:04:30 GMT
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 200 OK
Date: Wed, 19 Oct 2016 03:04:31 GMT
Server: HCP V7.2.0.26
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示例 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>ENABLED</Status>
</VersioningConfiguration>
规则约束
       

5.对象操作

5.1检测对象是否存在

名称 doesObjectExist
描述 检测对象是否存在
请求语法 HEAD /对象 key      HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Date: date
Content-Type: application/octet-stream
请求参数
请求头部 Host 请求的主机,bucketname 是要检测的桶名称
Autho
rizatio
n
认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Conte nt-Typ e: 请求体内容类型。
请求体
响应头部 Server 响应的服务器版本号。
Conte nt-Len gth 响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
响应体
响应状态码 200 对象存在。
403 1、认证信息不正确;
2、当前用户没有桶或对象的 read 权限;
3、桶没有开启 HS3 协议;
404 1、对象或桶或对象的指定版本不存在。;
2、指定的对象版本是一个已经删除的对象版本;
500 请求超时或内部错误,请重试。
503 服务无效。原因可能如下:
1、系统正在重启;
2、运维中;
3、升级中;
   
请求示例 HEAD /testFile.xlsx HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:3W2EcpAeld2/1LE2iI08lVbIuqo=
Date: Thu, 20 Oct 2016 09:05:28 GMT
Content-Type: application/octet-stream
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 09:05:28 GMT
Server: HCP V7.2.0.26
ETag: "6ad94b3ce320201d2a5cadca222f9f8e" Accept-Ranges: bytes x-amz-version-id: 94525024140929
Last-Modified: Thu, 20 Oct 2016 08:51:42 GMT
Content-Length: 13487
Content-Type:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=ISO -8859-1
规则约束 1、如果检测对象是否存在,要指定完整的对象 key。举例:dir123/testFile.xlsx
2、如果检测目录是否存在,要指定目录 key。举例:dir123/

5.2创建对象

名称 putObject
描述 创建对象
请求语法 PUT 对象 key HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Length: 请求体长度
  Date: date
请求参数
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Length
请求体长度
Content-
MD5
文件内容的 md5 值。不是必选项。
请求体 文件内容 stream
响应头部 Server 响应的服务器版本号。
Content-
Length
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
ETag 对象的唯一标识。
x-amz-ve rsion-id 对象的版本编号。如果版本开启,则返回;否则不返回。
响应体
响应状态码 200 成功
400 1、本地计算的 md5 值和文件上传成功后 HCP 返回的 MD5 值不一致;
2、创建对象的同时指定了 ACL 值,但此值无效;
403 1、认证信息不正确;
2、当前用户没有向桶中存储对象的权限;
3、桶没有开启 HS3 API;
404 桶不存在;
503 服务无效。原因可能如下:
    d)         系统正在重启;
e)         运维中;
f)          升级中;
500 请求超时或内部错误,请重试。
409 1、相同 key 的对象已存在,只有当桶的版本功能没有开启时有效;
2、相同 key 的目录存在;
413 桶空间不足,对象太大;
请求示例 PUT /123.txt   HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:1cL4Ng2bSQ9bwkqLuYRHgTIKsgs=
Date: Thu, 20 Oct 2016 09:43:00 GMT
Content-MD5: zwgy3t90V7vL+gC72HswCg==
Content-Type: text/plain
Content-Length: 4
Connection: Keep-Alive
Expect: 100-continue
请求体示例 文件内容 stream
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 09:43:00 GMT
Server: HCP V7.2.0.26
ETag: "cf0832dedf7457bbcbfa00bbd87b300a" x-amz-version-id: 94525221186177
Content-Length: 0
规则约束 1、创建文件对象。当对象 key 不以“/”结尾,代表创建文件对象,举例:123/ 中国.txt ;
2、创建目录对象。当对象 key 以“/”结尾,代表创建目录对象,举例:123/ ;
       

5.3删除对象

名称 deleteObject
描述 删除对象
请求语法 DELETE /对象 key?versionId=版本编号 HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Date: date
Content-Type: application/octet-stream
请求参数 versionId。 对象版本编号。此参数如果不指定,删除当前版本。
请求头部 Host 请求的主机,bucketname 是要检测的桶名称
Authorization 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-Type 请求体内容类型。
请求体
响应头部 Server 响应的服务器版本号。
x-amz-versionid 对象版本号,当版本开启时才返回
Date 响应时间。参考“通用响应头”。
x-amz-deletemarker 标识对象版本已删除,当版本开启时有效。
x-amz-versionid 返回删除对象或目录的版本号。只有当版本功能开启,才会返回。
响应体
响应状态码 204 1、对象或目录删除成功;
2、对象或目录不存在;
403 1、认证信息不正确;
2、当前请求用户没有删除权;
    3、桶没有开启 HS3 协议;
4、参数 versionId 传递了要删除的对象版本号,但是此对象已经被删除;
404 桶不存在。
500 请求超时或内部错误,请重试。
503 服务无效。原因可能如下:
1、系统正在重启;
2、运维中;
3、升级中;
409 对象设置的 retention 级别不允许删除;
501 参数 versionId 指定的版本号不是对象的当前版本号,HCP 只支持删除当前版本;
请求示例 DELETE /test.xls HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:V3DCa1lx9oXeYzd9STAoK+THnTI=
Date: Thu, 20 Oct 2016 11:33:41 GMT
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 204 No Content
Date: Thu, 20 Oct 2016 09:05:28 GMT Server: HCP V7.2.0.26 x-amz-version-id: 94525645227841 x-amz-delete-marker: true
规则约束 1、HCP 只支持删除当前版本;
2、对象 key 以“/”结尾代表要删除一个目录对象;
3、非空目录不能删除;
4、如果没有开启版本功能,对象被删除;
  5、如果开启版本功能,删除操作会产生一个新的版本;

5.4复制对象

名称 copyObject
描述 复制对象
请求语法 PUT /目标对象 key        HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Length: 请求体长度
Content-Type: application/octet-stream
x-amz-copy-source: 源对象 key?versionId=版本编号
Date: date
请求参数
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Length
请求体长度
x-amz-co py-sourc e 源对象 key。 versionId 为源对象指定版本号,可复制源对象的某个版本。如果不指定,复制对象的当前版本。如:
x-amz-copy-source:
/testnamespace3/jodconverter-cli-2.2.0.jar.zip?versionid=1231234
请求体
响应头部 Server 响应的服务器版本号。
Date 响应时间。参考“通用响应头”。
  ETag 对象的唯一标识。
x-amz-ve rsion-id 对象的版本编号。如果版本开启,则返回;否则不返回。
x-amz-co py-sourc e-version
-id
源对象的版本号。仅当版本功有开启有效。
Content-
Type
返回的响应体类型。
Transfer-
Encoding
Chunked。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<LastModified>目标对象的最后修改时间</LastModified>
<ETag>目标对象的唯一标识</ETag>
</CopyObjectResult>
响应状态码 200 成功
400 在复制对象时设置的 ACL 请求头不正确;
403 1、认证信息不正确;
2、当前用户权限不足。当前用户必须有源桶的读取权限,目标桶的写权限;
4、桶没有开启 HS3 API;
404 1、源对象不存在;
2、如果指定了版本号。源对象的此版本可能不存在,或此版本是一个被删除的版本;
3、源桶不存在;
503 服务无效。原因可能如下:
    g)         系统正在重启;
h)         运维中;
i)           升级中;
500 请求超时或内部错误,请重试。
409 1、目标对象已存在。如果版本没有开启,就会产生冲突;但是,如果版本开启,就不影响;
413 目标桶空间不足,对象太大;
请求示例 PUT /123.rar HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:yL9NKIM+Ko87y+u4YGkr6LBG1Tw= x-amz-copy-source:
/testnamespace3/jodconverter-cli-2.2.0.jar.zip?versionid=1231234
Date: Fri, 21 Oct 2016 00:30:24 GMT
Content-Type: application/octet-stream
Content-Length: 0
Connection: Keep-Alive
请求体
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 09:43:00 GMT
Server: HCP V7.2.0.26
ETag: "cf0832dedf7457bbcbfa00bbd87b300a" x-amz-version-id: 94525221186177 x-amz-copy-source-version-id: 94528584835137
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示例 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CopyObjectResult
  xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><LastModified>2016-10-21T0
0:30:24.000Z</LastModified>
<ETag>"f7701509609a33b8db56c3e1975670d1"</ETag>
</CopyObjectResult>
规则约束 1、当前用户的权限。源桶的读取权限,目标桶的写权限;
2、可复制指定版本的对象,需指定版本号。如果不指定,默认复制当前版本;
3、对象的元数据会一并复制;
       

5.5读取对象

名称 getObject
描述 读取对象或读取对象的某一部分
请求语法 GET /对象 key?versionId=版本号 HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Date: date
Content-Type: application/octet-stream
Range: bytes=起始位置-偏移量
请求参数 versionId 要读取的对象版本号。如果不指定,读取对象的当前版本。
请求头部 Host 请求的主机,bucketname 是要检测的桶名称
Authorization 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-Type 请求体内容类型。
Range bytes=起始位置-偏移量
请求体
响应头部 Server 响应的服务器版本号。
Content-Type 响应体类型。如:application/vnd.ms-excel
Date 响应时间。参考“通用响应头”。
  Content-Lengt h 响应体长度。参考“通用响应头”。
ETag 对象标识;
x-amz-versionid 对象版本号。只有当版本开启时有效;
Last-Modified 对象最后修改时间;
Accept-Ranges Bytes。接收的对象数据表示方式:字节。
Content-Range bytes 起始位置-偏移量/对象总大小 。对象内容范围。
响应体 stream
响应状态码 200 成功读取完整的对象
403 1、认证信息不正确;
2、当前请求用户没有桶或对象的读取权限;
3、桶没有开启 HS3 协议;
404 1、对象或对象的指定版本不存在;
2、指定的对象版本是一个已经删除的版本;
3、要读取的对象是一个目录;
4、桶不存在;
500 请求超时或内部错误,请重试。
503 服务无效。原因可能如下:
1、系统正在重启;
2、运维中;
3、升级中;
206 成功读取部分对象数据;
416 当读取对象的某一部分时有效
1、指定的起始值大于等于对象的最大字节;
2、偏移值是 0 ;
请求示例 GET /test.xls HTTP/1.1
  Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:rgOMBkxNkGKKDtDjaDmB4unECzg=
Date: Thu, 20 Oct 2016 11:19:49 GMT
Range: bytes=0-234
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 206 Partial Content
Date: Thu, 20 Oct 2016 09:05:28 GMT
Server: HCP V7.2.0.26
ETag: "739eb093174d36ec6b7630448d1a7746" Accept-Ranges: bytes x-amz-version-id: 94528941855937
Content-Type: application/vnd.ms-excel
Content-Range: bytes 0-234/6656
Content-Length: 235
响应体示例 对象内容 stream
规则约束  

5.6列出对象的版本

名称 listVersions
描述 列出对象版本
请求语法 GET /?versions&prefix=对象 key HTTP/1.1
Host: tenant-name.hcp-domain name
Authorization: authorization string
  Content-Type: application/octet-stream
Date: date
请求参数 versions 此参数表明,请求返回对象的版本信息; prefix 对象 key
请求头部 Host 请求的主机。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Type
参考“通用请求头”。
请求体
响应头部 Server 响应的服务器版本号。
Content-
Type
响应体类型及编码。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
Transfer-
Encoding
响应体分块传输。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListVersionsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>桶名称</Name>
<Prefix>对象前缀,在此处等于对象 key</Prefix>
<KeyMarker></KeyMarker>
<VersionIdMarker>
</VersionIdMarker>
<MaxKeys>最多返回的对象数量</MaxKeys>
<IsTruncated>是否全部返回,true 表明还有没有全部返回;false 表时已全部返
  回</IsTruncated>
<Version>
<Key>对象 key</Key>
<VersionId>对象版本号</VersionId>
<IsLatest>是否是最新版本,true 表时是;false 表明不是</IsLatest>
<LastModified>对象最后修改时间</LastModified>
<ETag>"对象标识"</ETag>
<Size>对象大小</Size>
<Owner><ID>对象所有者 ID</ID>
<DisplayName>对象所有者名称</DisplayName></Owner>
<StorageClass>STANDARD</StorageClass>
</Version>
<!--表明此对象是一个已删除的对象-->
<DeleteMarker>
<Key>对象 key</Key>
<VersionId>对象版本号</VersionId>
<IsLatest>是否是最新版本,true 表时是;false 表明不是</IsLatest>
<LastModified>对象最后修改时间</LastModified>
<Owner><ID>对象所有者 ID</ID>
<DisplayName>对象所有者名称</DisplayName>
</Owner>
</DeleteMarker>
</ListVersionsResult>
响应状态码 200 成功;
403 1、认证信息不正确;
2、租户不存在;
3、桶没有开启 HS3 API;
  503 服务无效。原因可能如下:系统正在重启;运维中;升级中;
500 请求超时或内部错误,请重试。
404 桶不存在
请求示例 GET /?versions&prefix=dir123/123.txt HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:yIN11McTMWGgKR3WC7O2JCvM4b0=
Date: Fri, 21 Oct 2016 03:09:38 GMT
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 200 OK
Date: Wed, 19 Oct 2016 03:04:31 GMT
Server: HCP V7.2.0.26
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示例 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListVersionsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>testnamespace3</Name>
<Prefix>test.xls</Prefix>
<KeyMarker></KeyMarker>
<VersionIdMarker>
</VersionIdMarker>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Version>
<Key>test.xls</Key>
<VersionId>94525645227841</VersionId>
  <IsLatest>false</IsLatest>
<LastModified>2016-10-20T11:33:26.708Z</LastModified>
<ETag>"739eb093174d36ec6b7630448d1a7746"</ETag>
<Size>6656</Size>
<Owner><ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID><DisplayName>netskill
</DisplayName></Owner>
<StorageClass>STANDARD</StorageClass>
</Version>
<DeleteMarker>
<Key>test.xls</Key>
<VersionId>94525646160641</VersionId>
<IsLatest>false</IsLatest>
<LastModified>2016-10-20T11:33:41.260Z</LastModified>
<Owner><ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID><DisplayName>netskill
</DisplayName></Owner>
</DeleteMarker>
<Version>
<Key>test.xls</Key>
<VersionId>94528941855937</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2016-10-21T01:51:56.567Z</LastModified>
<ETag>"739eb093174d36ec6b7630448d1a7746"</ETag>
<Size>6656</Size>
<Owner><ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID><DisplayName>netskill
</DisplayName></Owner>
<StorageClass>STANDARD</StorageClass>
  </Version>
</ListVersionsResult>
规则约束
       

6.ACL操作

6.1桶ACL操作

6.1.1 设置桶 ACL(CanonicalUser)

名称 setBucketAcl
描述 为指定用户设置桶权限
请求语法 PUT /?acl HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: text/plain
Content-Length: 请求体长度
Date: date
请求参数 acl
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Type
请求体类型
Content-
Length
请求体长度
   
请求体 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>桶所有者编号</ID>
<DisplayName>桶所有者名称</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="CanonicalUser">
<ID>被授权用户的 ID</ID>
</Grantee>
<Permission>被授预的权限,参考“术语、码表”</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应头部 Server 响应的服务器版本号。
Content-
Length
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
响应体
响应状态码 200 成功
400 1、请求体格式不正确或参数据值无效;
2、被授权者 ID 不存在或不正确;
3、你指定的权限无效;
4、同样的授权重复出现;
403 1、认证信息不正确;
    2、当前授权人没有给其它用户授权的权限;
3、桶没有开启 HS3 API;
404 桶不存在;
503 服务无效。原因可能如下:
7、系统正在重启;
8、运维中;
9、升级中;
500 请求超时或内部错误,请重试。
请求示例 PUT /?acl HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:XKTeGnF3j39ezcV3n0fMm+z30V0=
User-Agent:    aws-sdk-java/1.10.77      Windows_7/6.1
Java_HotSpot(TM)_64-Bit_Server_VM/25.91-b14/1.8.0_91 amz-sdk-invocation-id: 9530e024-ba90-4aa5-ab96-02b6d16bc27c amz-sdk-retry: 0/0/
Date: Thu, 20 Oct 2016 04:21:05 GMT
Content-Type: text/plain
Content-Length: 413
Connection: Keep-Alive
Expect: 100-continue
请求体示例 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:type="CanonicalUser">
<ID>83813c7e-dd96-457c-8556-813b6a997ff7</ID>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 04:21:05 GMT
Server: HCP V7.2.0.26
Content-Length: 0
规则约束  
       

6.1.2 设置桶 ACL(AuthenticatedUsers)

名称 setBucketAcl
描述 为经过认证的用户设置桶权限
请求语法 PUT /?acl HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: text/plain
Content-Length: 请求体长度
Date: date
请求参数 acl
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content- 请求体类型
  Type  
Content-
Length
请求体长度
请求体 <AccessCo ntrolPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Ow n er>
    <ID>所有者 ID</ID>
    <DisplayName>所有者名称</DisplayName>
  </O w ner>
  <Acc essControlList>
    <Grant>  
    <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:type=" Group">  
  <URI >http://acs.am azonaws.com/groups/global/AuthenticatedUsers</URI>
    </Grantee>
    <Permission>权限信息,参考“术语、码表”</Permission>
  </Gr a nt>
  </Ac c essControlList>
  </AccessC ontrolPolicy>
响应头部 Server 响应的服务器版本号。
Content-
Length
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
响应体
响应状态码 200 成功
400 1、请求体格式不正确或参数据值无效;
2、被授权者 ID 不存在或不正确;
    3、你指定的权限无效;
4、同样的授权重复出现;
403 1、认证信息不正确;
2、当前授权人没有给其它用户授权的权限;
3、桶没有开启 HS3 API;
404 桶不存在;
503 服务无效。原因可能如下:
j)           系统正在重启;
k)         运维中;
l)           升级中;
500 请求超时或内部错误,请重试。
请求示例 PUT /?acl HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:XKTeGnF3j39ezcV3n0fMm+z30V0=
Date: Thu, 20 Oct 2016 04:21:05 GMT
Content-Type: text/plain
Content-Length: 413
Connection: Keep-Alive
Expect: 100-continue
请求体示例 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="Group">
  <URI>http://acs.amazonaws.com/groups/global/AuthenticatedUsers</URI>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 04:21:05 GMT
Server: HCP V7.2.0.26
Content-Length: 0
规则约束  
         

6.1.3 设置桶 ACL(AllUsers)

名称 setBucketAcl
描述 为匿名用户设置桶权限
请求语法 PUT /?acl HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: text/plain
Content-Length: 请求体长度
Date: date
请求参数 acl
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content- 请求体类型
  Type  
Content-
Length
请求体长度
请求体 <AccessCo ntrolPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Ow n er>
    <ID>所有者 ID</ID>
    <DisplayName>所有者名称</DisplayName>
  </O w ner>
  <Acc essControlList>
    <Grant>  
    <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:type=" Group">  
    <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
    </Grantee>
    <Permission>权限信息,参考“术语、码表”</Permission>
  </Gr a nt>
  </Ac c essControlList>
  </AccessC ontrolPolicy>
响应头部 Server 响应的服务器版本号。
Content-
Length
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
响应体
响应状态码 200 成功
400 1、请求体格式不正确或参数据值无效;
2、被授权者 ID 不存在或不正确;
3、你指定的权限无效;
    4、同样的授权重复出现;
403 1、认证信息不正确;
2、当前授权人没有给其它用户授权的权限;
3、桶没有开启 HS3 API;
404 桶不存在;
503 服务无效。原因可能如下:
m)       系统正在重启;
n)         运维中;
o)         升级中;
500 请求超时或内部错误,请重试。
请求示例 PUT /?acl HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:XKTeGnF3j39ezcV3n0fMm+z30V0=
Date: Thu, 20 Oct 2016 04:21:05 GMT
Content-Type: text/plain
Content-Length: 413
Connection: Keep-Alive
Expect: 100-continue
请求体示例 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="Group">
  <URI>htt p
</Grantee>
<Permission>R
</Grant>
<Grant>
://acs.amazonaws.com/groups/global/AllUsers</URI>
EAD</Permission>
  <Grantee
xsi:type="Group">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 04:21:05 GMT
Server: HCP V7.2.0.26
Content-Length: 0
规则约束  
         

6.1.4 读取桶 ACL

名称 getBucketAcl
描述 得到桶的访问控制列表
请求语法 GET /?acl HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: application/octet-stream
  Date: date
请求参数 acl
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Type
请求体类型
请求体
响应头部 Server 响应的服务器版本号。
Content-
Type
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
Transfer-
Encoding
值“chunked”。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<!--桶所有者信息-->
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<!--访问控制列表信息-->
<AccessControlList>
<!--认证组用户的授权信息-->
<Grant>
<Grantee          xsi:type="Group"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AuthenticatedUsers</URI>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
<!--匿名组用户的授权信息-->
<Grant>
<Grantee xsi:type="Group"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>READ</Permission>
</Grant>
<!--匿名组用户的授权信息-->
<Grant>
<Grantee xsi:type="Group"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
<!--指定 ID 的用户授权信息-->
<Grant>
<Grantee xsi:type="CanonicalUser"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
  </Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应状态码 200 成功
403 1、认证信息不正确;
2、没有读取 ACL 的权限;
3、桶不支持此操作或桶没有开启 HS3 API;
404 桶不存在;
503 服务无效。原因可能如下:
p)         系统正在重启;
q)         运维中;
r)          升级中;
500 请求超时或内部错误,请重试。
请求示例 GET /?acl HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:BxAIPjGPFLSQFnMWFsNqxKYjBhU=
Date: Thu, 20 Oct 2016 07:08:49 GMT
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 04:21:05 GMT
Server: HCP V7.2.0.26
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee          xsi:type="Group"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AuthenticatedUsers</URI> </Grantee>
<Permission>WRITE</Permission>
</Grant>
<Grant>
  <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>READ</Permission>
</Grant>
<Grant>
xsi:type="Group"
  <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
xsi:type="Group"
  <Permission>WRITE</Permission>
</Grant>
<Grant>
<Grantee xsi:type="CanonicalUser"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
规则约束  
         

6.2对象ACL操作

6.2.1 设置对象 ACL(CanonicalUser)

名称 setObjectAcl
描述 为指定用户设置对象权限
请求语法 PUT /对象 key?acl&versionId=版本号 HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: text/plain
Content-Length: 请求体长度
Date: date
请求参数 acl
versionId 对象版本号。如果不指定,为当前版本授权;如果指定,则为特定版本对象授权。
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Type
请求体类型
Content-
Length
请求体长度
请求体 <AccessCo ntrolPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Ow ner>
<ID>对象所有者编号</ID>
<DisplayName>对象所有者名称</DisplayName>
</O wner>
<Acc essControlList>
<Gra nt>
<Grantee         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type=" CanonicalUser">
<ID>被授权用户的 ID</ID>
</Grantee>
<Permission>被授预的权限,参考“术语、码表”</Permission>
</Gr ant>
</Ac cessControlList>
</AccessC ontrolPolicy>
响应头部 Server 响应的服务器版本号。
  Content-
Length
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
响应体
响应状态码 200 成功
400 1、求体格式不正确或参数据值无效;
2、被授权者 ID 不存在或不正确;
3、你指定的权限无效;
4、同样的授权重复出现;
403 1、认证信息不正确;
2、当前授权人没有给其它用户授权的权限;
3、桶没有开启 HS3 API;
404 对象不存在或桶不存在;
503 服务无效。原因可能如下:
1、系统正在重启;
2、运维中;
3、升级中;
500 请求超时或内部错误,请重试。
请求示例 PUT /test.xls?acl HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:6nEKKzvfNI4/b7oxlsu+n7lDDZU=
Date: Fri, 21 Oct 2016 03:23:38 GMT
Content-Type: text/plain
Content-Length: 413
Connection: Keep-Alive
请求体示例 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
  <ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="CanonicalUser">
<ID>83813c7e-dd96-457c-8556-813b6a997ff7</ID>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 04:21:05 GMT
Server: HCP V7.2.0.26
Content-Length: 0
规则约束  
       

6.2.2 设置对象 ACL(AuthenticatedUsers)

名称 setObjectAcl
描述 为经过认证的用户设置对象权限
请求语法 PUT /test.xls?acl&versionId=版本号 HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: text/plain
  Content-Length: 请求体长度
Date: date
请求参数 acl
versionId 对象版本号。如果不指定,为当前版本授权;如果指定,则为特定版本对象授权。
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Type
请求体类型
Content-
Length
请求体长度
请求体 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>所有者 ID</ID>
<DisplayName>所有者名称</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="Group">
<URI>http://acs.amazonaws.com/groups/global/AuthenticatedUsers</URI>
</Grantee>
<Permission>权限信息,参考“术语、码表”</Permission>
</Grant>
</AccessControlList>
  </AccessControlPolicy>
响应头部 Server 响应的服务器版本号。
Content-
Length
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
响应体
响应状态码 200 成功
400 1、添加的权限信息超过 100 个;
2、对象的所有者不存在;
3、请求体格式不正确或参数据值无效;
4、被授权者 ID 不存在或不正确;
5、你指定的权限无效;
6、同样的授权信息重复出现;
403 1、认证信息不正确;
2、当前用户没有给对象添加 ACL 的权限;
3、桶没有开启 HS3 API;
4、桶不支持当前的请求;
404 桶不存在或对象不存在;
503 服务无效。原因可能如下:
s)         系统正在重启;
t)          运维中;
u)         升级中;
500 请求超时或内部错误,请重试。
请求示例 PUT /test.xls?acl HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:aH29rFqCUbAjJnPYIve1XLfFh4I=
Date: Fri, 21 Oct 2016 11:44:37 GMT
  Content-Type: text/plain
Content-Length: 428
Connection: Keep-Alive
Expect: 100-continue
请求体示例 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<AccessControlList>
<Grant>
  <Grantee
xsi:type="Group">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  <URI>http://acs.amazonaws.com/groups/global/AuthenticatedUsers</URI>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 04:21:05 GMT
Server: HCP V7.2.0.26
Content-Length: 0
规则约束  
         

6.2.3 设置对象 ACL(AllUsers)

名称 setObjectAcl
描述 为匿名用户设置对象权限
请求语法 PUT /test.xls?acl&versionId=版本号 HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: text/plain
Content-Length: 请求体长度
Date: date
请求参数 acl
versionId 对象版本号。如果不指定,为当前版本授权;如果指定,则为特定版本对象授权。
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Type
请求体类型
Content-
Length
请求体长度
请求体 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>所有者 ID</ID>
<DisplayName>所有者名称</DisplayName>
</Owner>
<AccessControlList>
<Grant>
  <Grantee          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="Group">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>权限信息,参考“术语、码表”</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应头部 Server 响应的服务器版本号。
Content-
Length
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
响应体
响应状态码 200 成功
400 1、请求体格式不正确或参数据值无效;
2、被授权者 ID 不存在或不正确;
3、你指定的权限无效;
4、同样的授权重复出现;
403 1、认证信息不正确;
2、当前授权人没有给其它用户授权的权限;
3、桶没有开启 HS3 API;
404 桶不存在;
503 服务无效。原因可能如下:
v)         系统正在重启;
w)       运维中;
x)         升级中;
500 请求超时或内部错误,请重试。
   
请求示例 PUT /test.xls?acl HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:yZYOuv3tMQQ14F09A3exOJWZt0U=
Date: Fri, 21 Oct 2016 12:15:16 GMT
Content-Type: text/plain
Content-Length: 610
Connection: Keep-Alive
Expect: 100-continue
请求体示例 <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="Group">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>READ</Permission>
</Grant>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="Group">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
  <Permission>WRITE</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 04:21:05 GMT
Server: HCP V7.2.0.26
Content-Length: 0
规则约束  
       

6.2.4 读取对象 ACL

名称 getObjectAcl
描述 得到对象的访问控制列表
请求语法 GET /test.xls?acl&versionId=对象版本号 HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Type: application/octet-stream
Date: date
请求参数 acl
versionId 如果指定版本号,读取此版的 ACL;如果不指定读取当前版本的 ACL;
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Type
请求体类型
请求体
响应头部 Server 响应的服务器版本号。
Content-
Type
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
Transfer-
Encoding
值“chunked”。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>对象所有者 ID</ID>
<DisplayName>对象所有者名称</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee         xsi:type="CanonicalUser"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID>被授权用户 ID</ID>
<DisplayName>被授权用户名称</DisplayName>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
<!--匿名用户组权限信息-->
<Grant>
<Grantee         xsi:type="Group"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>READ</Permission>
  </Grant>
<!--匿名用户组权限信息-->
<Grant>
<Grantee         xsi:type="Group"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
</AccessControlList>
响应状态码 200 成功
403 1、认证信息不正确;
2、没有读取对象 ACL 的权限;
3、桶不支持此操作或桶没有开启 HS3 API;
404 桶或对象不存在;
503 服务无效。原因可能如下:
y)       系统正在重启;
z)       运维中; aa) 升级中;
500 请求超时或内部错误,请重试。
请求示例 GET /test.xls?acl HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:OOSQSOzFyesi2gjt3j+8xmT1ZsI=
Date: Fri, 21 Oct 2016 12:30:05 GMT
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 04:21:05 GMT
  Server: HCP V7.2.0.26
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示例 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee        xsi:type="CanonicalUser"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID>83813c7e-dd96-4570-8556-813b6a997ff7</ID>
<DisplayName>netskill</DisplayName>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
<Grant>
  <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>READ</Permission>
</Grant>
<Grant>
xsi:type="Group"
  <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>WRITE</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
xsi:type="Group"
规则约束    
         

7.用户自定义元数据操作

7.1创建对象和元数据

名称 putObject
描述 创建对象的同时指定元数据
请求语法 PUT 对象 key        HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name Authorization: authorization string
x-amz-meta-元数据 key: 元数据 value
Content-Length: 请求体长度
Content-Type: 请求体类型
Content-MD5: 对象内容的 MD5 值
Date: date
请求参数
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz 认证信息。参考“通用请求头”。
  ation  
Date 请求时间。参考“通用请求头”。
Content-
Length
请求体长度。
Content-
MD5
文件内容的 md5 值。不是必选项。
Content-
Type
请求体类型。
x-amz-m
eta-
无数据请求头。元数据由 key,value 两部分组成。
1、key 会放到请求头部,和“x-amz-meta-”共同组成请求头信息,
如:x-amz-meta-xingMing;
2、value 放到请求头部,作为“x-amz-meta-”的值 ;
3、举例。key 是 xingMing,value 是 netskill,组成的元数据请求头如
下所示:x-amz-meta-xingMing: netskill ;
请求体 文件内容 stream
响应头部 Server 响应的服务器版本号。
Content-
Length
响应体长度。参考“通用响应头”。
Date 响应时间。参考“通用响应头”。
ETag 对象的唯一标识。
x-amz-ve rsion-id 对象的版本编号。如果版本开启,则返回;否则不返回。
响应体
响应状态码 200 成功
400 1、本地计算的 md5 值和文件上传成功后 HCP 返回的 MD5 值不一致;
2、创建对象的同时指定了 ACL 值,但此值无效;
403 1、认证信息不正确;
    2、当前用户没有向桶中存储对象的权限;
3、桶没有开启 HS3 API;
404 桶不存在;
503 服务无效。原因可能如下: ab)   系统正在重启; ac)   运维中; ad)   升级中;
500 请求超时或内部错误,请重试。
409 1、相同 key 的对象已存在,只有当桶的版本功能没有开启时有效;
2、相同 key 的目录存在;
413 桶空间不足,对象太大;
请求示例 PUT /test.txt HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:UcmwANd6wlh+qypje9em1jnFDPs=
Date: Fri, 21 Oct 2016 13:10:50 GMT
Content-MD5: CY9rzUYh03PK3k6DJie09g==
Content-Type: text/plain
Content-Length: 4
Connection: Keep-Alive
Expect: 100-continue
请求体示例 文件内容 stream
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 09:43:00 GMT
Server: HCP V7.2.0.26
ETag: "cf0832dedf7457bbcbfa00bbd87b300a" x-amz-version-id: 94525221186177
  Content-Length: 0
规则约束 1、创建文件对象。当对象 key 不以“/”结尾,代表创建文件对象,举例:123/ 中国.txt ;
2、创建目录对象。当对象 key 以“/”结尾,代表创建目录对象,举例:123/ ;
       

7.2读取对象元数据

名称 getObjectMetadata
描述 读取对象元数据
请求语法 HEAD /test.txt?versionId=对象版本号 HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Date: date
Content-Type: application/octet-stream
请求参数 versionId         对象版本号。如果不指定版本号,读取当前版本对象的元数据。此参数仅在版本功能开启的情况下起作用。
请求头部 Host 请求的主机,bucketname 是要检测的桶名称
Autho
rizatio
n
认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Conte nt-Typ e: 请求体内容类型。
请求体
响应头部 Server 响应的服务器版本号。
Conte nt-Len 响应体长度。参考“通用响应头”。
  gth  
Date 响应时间。参考“通用响应头”。
ETag 对象 ID ;
Accept -Range s Bytes ;
x-amzversio n-id 对象版本号;
x-amzmeta-
元 数
据 key
用户自定义元数据 key;
Conte nt-Typ e 响应体类型;
响应体
响应状态码 200 成功;
403 1、认证信息不正确;
2、当前用户没有桶或对象的 read 权限;
3、桶没有开启 HS3 协议;
404 1、对象或桶或对象的指定版本不存在。;
2、指定的对象版本是一个已经删除的对象版本;
500 请求超时或内部错误,请重试。
503 服务无效。原因可能如下:
1、系统正在重启;
2、运维中;
    3、升级中;
请求示例 HEAD /test.txt?versionId=94531548821057 HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:tgJN7Fs98u9AfNCfbhX02bBE0wU=
Date: Fri, 21 Oct 2016 13:31:39 GMT
Content-Type: application/octet-stream
Connection: Keep-Alive
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 09:05:28 GMT
Server: HCP V7.2.0.26
ETag: "6ad94b3ce320201d2a5cadca222f9f8e" Accept-Ranges: bytes x-amz-version-id: 94525024140929
Last-Modified: Thu, 20 Oct 2016 08:51:42 GMT x-amz-meta-xingMing: netskill
Content-Length: 13487
Content-Type: Content-Type: text/plain;charset=ISO-8859-1
规则约束 目录没有元数据;

7.3修改对象元数据

名称 copyObject
描述 修改或删除对象用户自定义元数据。如果将元数据请求头置为空可删除用户自定义元数据。
请求语法 PUT /目标对象 key         HTTP/1.1
Host: bucket-name.tenant-name.hcp-domain name
Authorization: authorization string
Content-Length: 请求体长度
  x-amz-meta-元数据 key: 元数据 value
x-amz-metadata-directive:REPLACE 或 COPY Content-Type: application/octet-stream
x-amz-copy-source: 源对象 key?versionId=版本编号
Date: date
请求参数
请求头部 Host 请求的主机,bucketname 是要创建的桶名称。
Authoriz ation 认证信息。参考“通用请求头”。
Date 请求时间。参考“通用请求头”。
Content-
Length
请求体长度
x-amz-co py-sourc e 源对象 key。 versionId 为源对象指定版本号,可复制源对象的某个版本。如果不指定,复制对象的当前版本。如:
x-amz-copy-source:
/testnamespace3/jodconverter-cli-2.2.0.jar.zip?versionid=1231234
x-amz-m
eta-
无数据请求头。元数据由 key,value 两部分组成。
1、key 会放到请求头部,和“x-amz-meta-”共同组成请求头信息,
如:x-amz-meta-xingMing;
2、value 放到请求头部,作为“x-amz-meta-”的值 ;
3、举例。key 是 xingMing,value 是 netskill,组成的元数据请求头如
下所示:x-amz-meta-xingMing: netskill ;
4、如果此请求头不存在,则删除元数据;
x-amz-m etadatadirective 值为“REPLACE”情况:
1、如果指定这个值,说明要修改对象元数据;
2、此时,如果在请求头中没有元数据信息,会删除所有用户自定义
    元数据;
3、此时,如果在请求头中有元数据信息,会替换现有的用户自定义元数据;值为“COPY”的情况
1、如果指定这个值,说明要保留对象现有的元数据;
2、此时,如果在请求头中没有元数据信息,保留对象现有的元数据; 3、此时,如果在请求头中有元数据信息,在现在元数据中追加新的用户自定义元数据;
请求体
响应头部 Server 响应的服务器版本号。
Date 响应时间。参考“通用响应头”。
x-amz-ve rsion-id 对象的版本编号。如果版本开启,则返回;否则不返回。
x-amz-co py-sourc e-version
-id
源对象的版本号。仅当版本功有开启有效。
Content-
Type
返回的响应体类型。
Transfer-
Encoding
Chunked。参考“通用响应头”。
响应体 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<LastModified>目标对象的最后修改时间</LastModified>
<ETag>目标对象的唯一标识</ETag>
</CopyObjectResult>
响应状态 200 成功
400 在复制对象时设置的 ACL 请求头不正确;
403 1、认证信息不正确;
2、当前用户权限不足。当前用户必须有源桶的读取权限,目标桶的写权限;
3、桶没有开启 HS3 API;
404 1、源对象不存在;
2、如果指定了版本号。源对象的此版本可能不存在,或此版本是一个被删除的版本;
3、源桶不存在;
503 服务无效。原因可能如下: ae) 系统正在重启; af) 运维中; ag) 升级中;
500 请求超时或内部错误,请重试。
409 目标对象已存在。如果版本没有开启,就会产生冲突;但是,如果版本开启,就不影响;
413 目标桶空间不足,对象太大;
请求示例 PUT /test.xls HTTP/1.1
Host: testnamespace3.t1.hcp-demo.hcpdemo.com
Authorization: AWS bmV0c2tpbGw=:aFG5tAYM3elXi4AuF2Gtn+mHmzI= x-amz-metadata-directive: REPLACE x-amz-meta-koko: 123456789 x-amz-copy-source: /testnamespace3/test.xls
Date: Fri, 21 Oct 2016 13:44:22 GMT
Content-Type: application/octet-stream
Content-Length: 0
Connection: Keep-Alive
请求体
响应示例 HTTP/1.1 200 OK
Date: Thu, 20 Oct 2016 09:43:00 GMT Server: HCP V7.2.0.26 x-amz-version-id: 94525221186177 x-amz-copy-source-version-id: 94528584835137
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
响应体示例 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><LastModified>2016-10-21T0
0:30:24.000Z</LastModified>
<ETag>"f7701509609a33b8db56c3e1975670d1"</ETag>
</CopyObjectResult>
规则约束 1、当前用户的权限。源桶的读取权限,目标桶的写权限;
2、可复制指定版本的对象,需指定版本号。如果不指定,默认复制当前版本;
       

8.SDK

本文档编写及测试使用 AWS JAVA SDK1.10.77。如果使用其它语言调用 HS3 接口,请使作 AWS 的官方 SDK。

7x24服务热线
生态合作
价格计算器
7*24小时服务热线
400-810-5300 咨询/购买/备案/建议&投诉
5*8小时售前服务热线
400-810-7006
扫描上方二维码
微信咨询