接口:ListObjectsV2
2 分钟阅读
简要概述
列出该用户已存储的文件列表,默认最大返回 1000 个文件 官方文档
接口解析
请求语法
GET /?list-type=2&continuation-token=&delimiter=&encoding-type=&fetch-owner=&max-keys=&prefix=&start-after= HTTP/1.1
Host: {bucket}.{endpoint}
x-amz-request-payer: RequestPayer
x-amz-expected-bucket-owner: ExpectedBucketOwner
URL 参数
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
continuation-token | string | 否 | - | 指示 S3 列表正在使用令牌在此存储桶上继续 |
delimiter | string | 否 | / | 分隔符是用于对键进行分组的字符 |
encoding-type | string | 否 | url | 请求对响应中的密钥进行编码,并指定要使用的编码方法,仅支持: url |
fetch-owner | string | 否 | 默认情况下,Owner 字段不存在 | |
max-keys | int | 否 | 1000 | 最大返回文件数量,默认为 1000 |
prefix | string | 否 | demo1 | 仅过滤文件以此为前缀的列表 |
start-after | string | 否 | demo1 | 标记希望 S3 开始列出的位置 |
请求结构
无。
响应语法
HTTP/1.1 200
x-amz-request-charged: RequestCharged
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult>
<IsTruncated>boolean</IsTruncated>
<Contents>
<ChecksumAlgorithm>string</ChecksumAlgorithm>
...
<ETag>string</ETag>
<Key>string</Key>
<LastModified>timestamp</LastModified>
<Owner>
<DisplayName>string</DisplayName>
<ID>string</ID>
</Owner>
<Size>integer</Size>
<StorageClass>string</StorageClass>
</Contents>
...
<Name>string</Name>
<Prefix>string</Prefix>
<Delimiter>string</Delimiter>
<MaxKeys>integer</MaxKeys>
<CommonPrefixes>
<Prefix>string</Prefix>
</CommonPrefixes>
...
<EncodingType>string</EncodingType>
<KeyCount>integer</KeyCount>
<ContinuationToken>string</ContinuationToken>
<NextContinuationToken>string</NextContinuationToken>
<StartAfter>string</StartAfter>
</ListBucketResult>
响应参数
名称 | 类型 | 示例 | 说明 |
---|---|---|---|
Name | string | uptime | 桶名称 |
Prefix | string | demo1/hello/test | 查询文件前缀 |
StartAfter | string | demo1/hello/test111 | 指示存储桶列表中的开始位置 |
ContinuationToken | string | TODO; | TODO; |
NextContinuationToken | string | TODO; | TODO; |
KeyCount | int | 3 | 响应体返回的文件数 |
MaxKeys | int | 1000 | 响应体返回的最多文件数 |
Delimiter | string | / | 分隔符是用于对键进行分组的字符 |
IsTruncated | bool | false | 响应是否被截断,也就是超过 MaxKeys 数量 |
Contents | []Object | - | 文件对象列表 |
CommonPrefixes | []CommonPrefixes | - | 文件对象公共前缀 |
EncodingType | string | url | 对响应中的对象键进行编码的编码类型 |
请求示例
通过 rclone 进行测试
测试指令
./rclone \
--dump bodies \
--s3-force-path-style=false \
lsl \
minio:uptime/test/data
在使用 rclone 时,需注意配置 list_version = 2
使用版本 ListObjectV2 进行文件列表。
请求响应
2023/06/21 14:53:46 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023/06/21 14:53:46 DEBUG : HTTP REQUEST (req 0x14000b2a500)
2023/06/21 14:53:46 DEBUG : GET /?delimiter=&encoding-type=url&list-type=2&max-keys=1000&prefix=test%2Fdata%2F HTTP/1.1
Host: uptime.minio.dev.173ops.com
User-Agent: rclone/v1.62.2
Authorization: XXXX
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20230621T065346Z
Accept-Encoding: gzip
2023/06/21 14:53:46 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023/06/21 14:53:46 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023/06/21 14:53:46 DEBUG : HTTP RESPONSE (req 0x14000b2a500)
2023/06/21 14:53:46 DEBUG : HTTP/1.1 200 OK
Content-Length: 731
Accept-Ranges: bytes
Connection: keep-alive
Content-Security-Policy: block-all-mixed-content
Content-Type: application/xml
Date: Wed, 21 Jun 2023 06:53:46 GMT
Server: nginx/1.16.1
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Origin
Vary: Accept-Encoding
X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
X-Amz-Request-Id: 176A9A154228D110
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult
xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>uptime</Name>
<Prefix>test/data/</Prefix>
<KeyCount>2</KeyCount>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>test/data/component/21/226781.html</Key>
<LastModified>2023-06-21T05:36:53.650Z</LastModified>
<ETag>"c658d7f8c4ce1302f0a4903f10a5b5dc"</ETag>
<Size>40</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>test/data/component/29/226781.html</Key>
<LastModified>2023-06-21T05:36:53.656Z</LastModified>
<ETag>"6ea091a913376dea9f889a611eb74bd0"</ETag>
<Size>40</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<EncodingType>url</EncodingType>
</ListBucketResult>
2023/06/21 14:53:46 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
最后修改 2023.07.06: refactor: update some (5fe4b38)