接口:ListObjectsV2

简要概述

列出该用户已存储的文件列表,默认最大返回 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>&#34;c658d7f8c4ce1302f0a4903f10a5b5dc&#34;</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>&#34;6ea091a913376dea9f889a611eb74bd0&#34;</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)