主题切换
桶的操作
桶(Bucket)是对象的容器,所有的对象都必须位于桶里面,在整个系统里面桶名称唯一,在桶内部,对象key唯一。每个用户最多允许创建100个桶。
删除桶
功能介绍
删除桶操作用于删除用户指定的桶。
请求语法
http
DELETE /<bucket-name> HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
Date: <date>
X-Amz-Content-sha256:<x-amz-content-sha256>
Authorization: <authorization-header>
请求消息示例
http
DELETE https://fgws3-ocloud.ihep.ac.cn/20001-cbq2 HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
Authorization: AWS4-HMAC-SHA256 Credential=PIM9Z4LAahZtba1BeLW2/20231128/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=6c9055b5d38fed51498b75eb838038919babd4f0989bb30d2c0132d4a443eb1a
User-Agent: aws-sdk-go/1.48.3 (go1.19.2; windows; amd64)
X-Amz-Date: 20231128T074744Z
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
响应消息示例
http
HTTP/1.1 200 OK
Server: JWanFS FGW Server
Content-Length: 56
Content-Type: application/json
Date: Tue, 28 Nov 2023 07:47:45 GMT
列举桶内对象
功能介绍
对桶拥有读权限的用户可以执行获取桶内对象列表的操作。
如果用户在请求中只指定了桶名,则返回信息中会包含桶内部分或所有对象的描述信息(一次最多返回1000个对象信息);如果用户还指定了prefix、marker、max-keys、delimiter参数中的一个或多个,则返回的对象列表将按照如表1所示规定的语义返回指定的对象。
用户也可以请求参数中添加versions参数来执行列举桶内多版本对象的操作。
请求语法
http
GET /<bucket-name> HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
Date: <date>
Authorization: <authorization-header>
X-Amz-Content-sha256:<x-amz-content-sha256>
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
delimiter | 字符串 | 否 | / | 对Object名字进行分组的字符。所有Object名字包含指定的前缀,第一次出现delimiter字符之间的Object作为一组元素(即CommonPrefixes)。默认值:无 |
marker | 字符串 | 否 | test1.txt | 设定从marker之后按字母排序开始返回Object。marker用来实现分页显示效果,参数的长度必须小于1024字节。做条件查询时,即使marker在列表中不存在,也会从符合marker字母排序的下一个开始打印。默认值:无 |
max-keys | 字符串 | 否 | 200 | 指定返回Object的最大数。如果因为max-keys的设定无法一次完成列举,返回结果会附加NextMarker元素作为下一次列举的marker。取值:大于0小于等于1000 默认值:100 |
prefix | 字符串 | 否 | fun | 限定返回文件的Key必须以prefix作为前缀。prefix参数的长度必须小于1024字节。使用prefix查询时,返回的Key中仍会包含prefix。如果把prefix设为某个文件夹名,则列举以此prefix开头的文件,即该文件夹下递归的所有文件和子文件夹。在设置prefix的基础上,将delimiter设置为正斜线(/)时,返回值中只列举该文件夹下的文件,文件夹下的子文件夹名返回在CommonPrefixes中,子文件夹下递归的所有文件和文件夹不显示。例如,一个Bucket中有三个Object,分别为fun/test.jpg、 fun/movie/001.avi和fun/movie/007.avi。如果设定prefix为fun/,则返回三个Object;如果在prefix设置为fun/的基础上,将delimiter设置为正斜线(/),则返回fun/test.jpg和fun/movie/。默认值:无 |
响应元素
字段名 | 类型 | 示例值 | 描述 |
---|---|---|---|
Name | 字符串 | oss-example | Bucket名称 |
Prefix | 字符串 | fun/ | 本次查询结果的前缀 |
Marker | 字符串 | test1.txt | 标识此次GetBucket(ListObjects)的起点 |
MaxKeys | 字符串 | 100 | 响应请求内返回结果的最大数目 |
Delimiter | 字符串 | / | 对Object名字进行分组的字符。所有名字包含指定的前缀且第一次出现Delimiter字符之间的Object作为一组元素CommonPrefixes |
EncodingType | 字符串 | url | 指明了返回结果中编码使用的类型。如果请求的参数中指定了encoding-type,则会对返回结果中的Delimiter、Marker、Prefix等进行编码 |
IsTruncated | 枚举字符串 | false | 请求中返回的结果是否被截断。返回值:true、false。true表示本次没有返回全部结果,false表示本次已经返回了全部结果 |
NextMarker | 字符串 | test100.txt | 下一次列举文件的起点 |
Contents | 容器 | 保存每个返回Object元信息的容器 | |
Key | 字符串 | fun/test.jpg | Object的Key |
LastModified | 时间 | 2012-02-24T08:42:32.000Z | Object最后被修改的时间 |
ETag | 字符串 | 5B3C1A2E053D763E1B002CC607C5A0FE1**** | ETag(Entity Tag)用于标识一个Object的内容 |
Type | 字符串 | Normal | Object类型,分为Normal、Multipart、Appendable |
Size | 字符串 | 344606 | 返回Object大小,单位为字节 |
StorageClass | 字符串 | Standard | Object的存储类型 |
RestoreInfo | 字符串 | ongoing-request="true" | Object的解冻状态。如果没有提交RestoreObject请求或者RestoreObject请求已过期,则不返回该字段。 |
Owner | 容器 | 保存Bucket拥有者信息的容器 | |
ID | 字符串 | 0022012**** | Bucket拥有者的用户ID |
请求消息示例
http
GET https://fgws3-ocloud.ihep.ac.cn/20001-cbq HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Authorization: AWS4-HMAC-SHA256 Credential=PIM9Z4LAahZtba1BeLW2/20231128/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=0085f8cc5170d0e09aed8c375c08f9ccb3f9380d617d00a80d9d7c493a1d6703
User-Agent: aws-sdk-go/1.48.3 (go1.19.2; windows; amd64)
X-Amz-Date: 20231128T074915Z
响应消息示例
http
HTTP/1.1 200 OK
Content-Type: application/xml
Server: JWanFS FGW Server
X-Amz-Request-Id: 1701157756349303872
Date: Tue, 28 Nov 2023 07:49:16 GMT
Accept-Ranges: bytes
Content-Length: 1582
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>20001-cbq</Name>
<Prefix></Prefix>
<Marker></Marker>
<MaxKeys>10000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>COMPILING_CN.txt</Key>
<ETag>"f8c3bef258b5fe5aca42d0c023b25756"</ETag>
<Size>6104</Size>
<Owner>
<ID>0</ID>
</Owner>
<StorageClass>STANDARD</StorageClass>
<LastModified>2023-10-30T07:35:56Z</LastModified>
</Contents>
<Contents>
<Key>S3test.txt</Key>
<ETag>"c1b712b5927a315820b2fad439eb5f72"</ETag>
<Size>11</Size>
<Owner>
<ID>0</ID>
</Owner>
<StorageClass>STANDARD</StorageClass>
<LastModified>2023-11-28T06:23:09Z</LastModified>
</Contents>
<Contents>
<Key>s/</Key>
<ETag>"d41d8cd98f00b204e9800998ecf8427e-0"</ETag>
<Size>0</Size>
<Owner>
<ID>0</ID>
</Owner>
<StorageClass>STANDARD</StorageClass>
<LastModified>2023-11-25T00:25:18Z</LastModified>
</Contents>
<Contents>
<Key>s/S3test.txt</Key>
<ETag>"c1b712b5927a315820b2fad439eb5f72"</ETag>
<Size>11</Size>
<Owner>
<ID>0</ID>
</Owner>
<StorageClass>STANDARD</StorageClass>
<LastModified>2023-11-27T02:21:10Z</LastModified>
</Contents>
<Contents>
<Key>s3test.txt</Key>
<ETag>"d41d8cd98f00b204e9800998ecf8427e-0"</ETag>
<Size>0</Size>
<Owner>
<ID>0</ID>
</Owner>
<StorageClass>STANDARD</StorageClass>
<LastModified>2023-11-27T09:58:56Z</LastModified>
</Contents>
<Contents>
<Key>s3test222.txt</Key>
<ETag>"d41d8cd98f00b204e9800998ecf8427e-0"</ETag>
<Size>0</Size>
<Owner>
<ID>0</ID>
</Owner>
<StorageClass>STANDARD</StorageClass>
<LastModified>2023-11-27T09:59:23Z</LastModified>
</Contents>
</ListBucketResult>
获取桶的ACL
请求语法
http
GET /<bucket-name>?acl HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
Date: <date>
X-Amz-Content-sha256:<x-amz-content-sha256>
Authorization: <authorization-header>
响应元素
名称 | 类型 | 描述 | 父节点 |
---|---|---|---|
AccessControlList | 容器 | 存储ACL信息的容器类 | AccessControlPolicy |
AccessControlPolicy | 容器 | 保存GetBucketACL结果的容器 | None |
DisplayName | 字符串 | Bucket拥有者的名称(目前和用户ID一致) | AccessControlPolicy.Owner |
Grant | 枚举字符串 | Bucket的ACL权限 | AccessControlPolicy.AccessControlList |
ID | 字符串 | Bucket拥有者的用户ID | AccessControlPolicy.Owner |
Owner | 容器 | 保存Bucket拥有者信息的容器 | AccessControlPolicy |
请求消息示例
http
GET https://fgws3-ocloud.ihep.ac.cn/20001-cbq?acl= HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Authorization: AWS4-HMAC-SHA256 Credential=PIM9Z4LAahZtba1BeLW2/20231128/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=e34802b8f6137ccf6d0cb204f325d50e042cf523df35154edb19f300fd668bf2
User-Agent: aws-sdk-go/1.48.3 (go1.19.2; windows; amd64)
X-Amz-Date: 20231128T075231Z
响应消息示例
http
HTTP/1.1 200 OK
Date: Tue, 28 Nov 2023 07:52:32 GMT
Accept-Ranges: bytes
Content-Length: 434
Content-Type: application/xml
Server: JWanFS FGW Server
X-Amz-Request-Id: 1701157952198625919
<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy>
<Owner>
<ID>PIM9Z4LAahZtba1BeLW2</ID>
<DisplayName>20001</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
<Type>CanonicalUser</Type>
<ID>PIM9Z4LAahZtba1BeLW2</ID>
<DisplayName>20001</DisplayName>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
获取桶元数据
功能介绍
这个接口主要用于判断桶是否存在,以及是否有权限访问。
请求语法
http
HEAD /<bucket-name> HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
Date: <date>
X-Amz-Content-sha256:<x-amz-content-sha256>
Authorization: <authorization-header>
请求消息示例
http
HEAD https://fgws3-ocloud.ihep.ac.cn/20001-cbq HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
Authorization: AWS4-HMAC-SHA256 Credential=PIM9Z4LAahZtba1BeLW2/20231128/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=4a246a4f1467ffea4c13d3af98355653912235736a7db0232fe094e97804ea7e
User-Agent: aws-sdk-go/1.48.3 (go1.19.2; windows; amd64)
X-Amz-Date: 20231128T075336Z
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
响应消息示例
http
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 0
Server: JWanFS FGW Server
X-Amz-Request-Id: 1701158017224971796
Date: Tue, 28 Nov 2023 07:53:37 GMT
细节描述
- 不论正常返回200 OK还是非正常返回,Head Bucket都不返回消息体。所有桶相关信息都 包含在HTTP返回头中。
- 如果Bucket不存在,返回404 no content错误。错误码:NoSuchBucket。
- 只有Bucket的拥有者才能执行 HEAD Bucket操作。如果试图对一个没有对应权限的Bucket 进行该操作,返回403 Forbidden错误。错误码:AccessDenied。
获取桶列表
功能介绍
列出用户创建的所有桶。
请求语法
http
GET / HTTP/1.1
Host: s3.amazonaws.com
Date: <date>
X-Amz-Content-sha256:<x-amz-content-sha256>
Authorization: <authorization-header>
响应元素
Element | 描述 |
---|---|
CreationDate | 桶创建的日期 类型: 时间戳 格式: yyyy-MM-dd'T'HH:mm:ss.SSSZ (日期+T+时间+时区)(Z=Zulu Time Zone) 父节点: ListAllMyBucketsResult.Buckets.Bucket |
DisplayName | 桶所有者的名称 类型: 字符串 父节点: ListAllMyBucketsResult.Owner |
ID | 桶所有者的ID 类型: 字符串 父节点: ListAllMyBucketsResult.Owner |
ListAllMyBucketsResult | 响应容器 类型: 容器 子节点: Owner,Buckets |
Name | 桶名称 类型: 字符串 父节点: ListAllMyBucketsResult.Buckets.Bucket |
Bucket | 代表一个桶的信息 类型: 容器 父节点: ListAllMyBucketsResult.Buckets 子节点: Bucket |
Buckets | 多个桶信息的容器 类型: 容器 父节点: ListAllMyBucketsResult 子节点: Bucket |
请求消息示例
http
GET https://fgws3-ocloud.ihep.ac.cn/ HTTP/1.1
Host: fgws3-ocloud.ihep.ac.cn
User-Agent: aws-sdk-go/1.48.3 (go1.19.2; windows; amd64)
X-Amz-Date: 20231128T075413Z
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Authorization: AWS4-HMAC-SHA256 Credential=PIM9Z4LAahZtba1BeLW2/20231128/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=201eacee2b232af1455cc4d87dfb3ad0281c514f9cee155d4af0777a17dc5bd6
响应消息示例
http
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 294
Content-Type: application/xml
Server: JWanFS FGW Server
X-Amz-Request-Id: 1701158054936323038
Date: Tue, 28 Nov 2023 07:54:14 GMT
<?xml version="1.0" encoding="UTF-8"?>
<ListAllMyBucketsResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<DisplayName></DisplayName>
<ID></ID>
</Owner>
<Buckets>
<Bucket>
<CreationDate>2023-10-25T09:35:19Z</CreationDate>
<Name>20001-cbq</Name>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>