开发者社区> 问答> 正文

关于Bucket的操作 之如何实现GetBucketInfo?

Get Bucket Info操作用于查看bucket的相关信息。 包括如下内容:

  • 创建时间
  • 外网访问Endpoint
  • 内网访问Endpoint
  • bucket的拥有者信息
  • bucket的ACL(AccessControlList)


请求语法GET /?bucketInfo HTTP/1.1
Host: BucketName.oss.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue





响应元素(Response Elements)

名称描述
BucketInfo保存Bucket信息内容的容器 类型:容器 子节点:Bucket节点 父节点:无
Bucket保存Bucket具体信息的容器 类型:容器 父节点:BucketInfo节点
CreationDateBucket创建时间。时间格式 2013-07-31T10:56:21.000Z 类型:时间父节点:BucketInfo.Bucket
ExtranetEndpointBucket访问的外网域名 类型:字符串父节点:BucketInfo.Bucket
IntranetEndpoint同区域ECS访问Bucket的内网域名类型:字符串父节点:BucketInfo.Bucket
LocationBucket所在数据中心的区域 类型:字符串父节点:BucketInfo.Bucket
NameBucket名字类型:字符串父节点:BucketInfo.Bucket
Owner用于存放Bucket拥有者信息的容器。类型:容器父节点:BucketInfo.Bucket
IDBucket拥有者的用户ID。类型:字符串父节点:BucketInfo.Bucket.Owner
DisplayNameBucket拥有者的名称 (目前和ID一致)。类型:字符串父节点:BucketInfo.Bucket.Owner
AccessControlList存储ACL信息的容器类型:容器父节点:BucketInfo.Bucket
GrantBucket的ACL权限。类型:枚举字符串有效值:private、public-read、public-read-write父节点:BucketInfo.Bucket.AccessControlList


细节分析

  1. 如果Bucket不存在,返回404错误。错误码:NoSuchBucket。
  2. 只有Bucket的拥有者才能查看Bucket的信息,否则返回403 Forbidden错误,错误码:AccessDenied。
  3. 请求可以从任何一个OSS的Endpoint发起。


示例


[backcolor=transparent]请求示例: Get /?bucketInfo HTTP/1.1
Host: oss-example.oss.aliyuncs.com  
Date: Sat, 12 Sep 2015 07:51:28 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfj byc: BuG4rRK+zNhH1AcF51NNHD39zXw=


[backcolor=transparent]成功获取Bucket信息的返回示例: HTTP/1.1 200
x-oss-request-id: 534B371674E88A4D8906008B
Date: Sat, 12 Sep 2015 07:51:28 GMT
Connection: keep-alive
Content-Length: 531  
Server: AliyunOSS

<?xml version="1.0" encoding="UTF-8"?>
<BucketInfo>
  <Bucket>
    <CreationDate>2013-07-31T10:56:21.000Z</CreationDate>
    <ExtranetEndpoint>oss-cn-hangzhou.aliyuncs.com</ExtranetEndpoint>
    <IntranetEndpoint>oss-cn-hangzhou-internal.aliyuncs.com</IntranetEndpoint>
    <Location>oss-cn-hangzhou</Location>
    <Name>oss-example</Name>
    <Owner>
      <DisplayName>username</DisplayName>
      <ID>271834739143143</ID>
    </Owner>
    <AccessControlList>
      <Grant>private</Grant>
    </AccessControlList>
  </Bucket>
</BucketInfo>


[backcolor=transparent]获取不存在的Bucket信息的返回示例: HTTP/1.1 404
x-oss-request-id: 534B371674E88A4D8906009B
Date: Sat, 12 Sep 2015 07:51:28 GMT
Connection: keep-alive
Content-Length: 308  
Server: AliyunOSS

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>NoSuchBucket</Code>
  <Message>The specified bucket does not exist.</Message>
  <RequestId>568D547F31243C673BA14274</RequestId>
  <HostId>nosuchbucket.oss.aliyuncs.com</HostId>
  <BucketName>nosuchbucket</BucketName>
</Error>


[backcolor=transparent]获取没有权限访问的Bucket信息的返回示例: HTTP/1.1 403
x-oss-request-id: 534B371674E88A4D8906008C
Date: Sat, 12 Sep 2015 07:51:28 GMT
Connection: keep-alive
Content-Length: 209  
Server: AliyunOSS

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>AccessDenied</Code>
  <Message>AccessDenied</Message>
  <RequestId>568D5566F2D0F89F5C0EB66E</RequestId>
  <HostId>test.oss.aliyuncs.com</HostId>
</Error>

展开
收起
青衫无名 2017-10-20 10:55:29 5037 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载