本页面介绍了不同的 Cloud Storage 工具和库如何对结果进行分页。列出大量对象或存储桶时需要进行分页。
控制台
Google Cloud 控制台会在存储桶和存储桶详情页面中自动对存储桶和对象列表进行分页。
命令行
Google Cloud CLI 会自动对存储桶和对象列表进行分页。
客户端库
C++
默认情况下,客户端库会执行分页操作。当您调用支持分页的函数时,响应中会返回迭代器。如需查看此迭代器的使用方式示例,请参阅 ListObjects()
的 C++ 参考文档。
C#
默认情况下,客户端库会执行分页操作。当您调用支持分页的函数时,响应中会返回迭代器。如需查看此迭代器的使用方式示例,请参阅 ListObjects()
的 C# 参考文档。
Go
默认情况下,客户端库会执行分页操作。当您调用支持分页的函数时,响应中会返回迭代器。如需查看此迭代器的使用方式示例,请参阅 Bucket.Objects
的 Go 参考文档。
Java
默认情况下,客户端库会执行分页操作。当您调用支持分页的函数时,响应中会返回迭代器。如需查看此迭代器的使用方式示例,请参阅 Storage.Objects.list
的 Java 参考文档。
Node.js
默认情况下,客户端库会执行分页操作。当您调用支持分页的函数时,响应中会返回迭代器。如需查看此迭代器的使用方式示例,请参阅 getFiles()
的 Node.js 参考文档。
PHP
默认情况下,客户端库会执行分页操作。当您调用支持分页的函数时,响应中会返回迭代器。如需查看此迭代器的使用方式示例,请参阅 Objects
的 PHP 参考文档。
Python
默认情况下,客户端库会执行分页操作。当您调用支持分页的函数时,响应中会返回迭代器。如需查看此迭代器的使用方式示例,请参阅页面迭代器的 Python 参考文档。
Ruby
默认情况下,客户端库会执行分页操作。当您调用支持分页的函数时,响应中会返回迭代器。如需查看此迭代器的使用方式示例,请参阅 Google::Cloud::Storage::File::List
的 Ruby 参考文档。
REST API
JSON API
当您调用支持分页的函数时,如果列表不完整,则响应中会返回连续令牌 nextPageToken
。nextPageToken
表示返回的最后一个结果。将 nextPageToken
的值传递给后续请求的 pageToken
参数时,系统将从最后一个结果之后开始返回下一页结果。
示例响应
{ "kind": "storage#objects", "nextPageToken": "CgtzaGliYS0yLmpwZw==", "items": [ objects Resource … ] }
如需详细了解 objects Resource
,请参阅对象参考文档。
示例请求
GET https://storage.googleapis.com/storage/v1/b/BUCKET_NAME&pageToken=NEXT_PAGE_TOKEN HTTP/1.1 Authorization: Bearer ACCESS_TOKEN Accept: application/json
其中:
- NEXT_PAGE_TOKEN 是上一个响应中的
nextPageToken
值。 - BUCKET_NAME 是存储桶的名称。
- ACCESS_TOKEN 是您从 OAuth 2.0 Playground 收到的访问令牌。
如需详细了解如何对结果进行分页,请参阅 Objects: list
或 Buckets: list
的 JSON 参考文档。
XML API
当您调用支持分页的函数时,如果列表不完整,则响应中会返回连续令牌 NextContinuationToken
。NextContinuationToken
表示返回的最后一个结果。将 NextContinuationToken
的值传递给后续请求的 continuation-token
参数时,系统将从最后一个结果之后开始返回下一页结果。
示例响应
HTTP/1.1 200 OK X-goog-metageneration: 5 Content-location: https://example-bucket.storage.googleapis.com?max-keys=2&list-type=2 Expires: Wed, 02 Mar 2022 15:58:11 GMT Content-length: 781 X-guploader-uploadid: ADPycdvFss2qs9wyMrrM2fIIZzTFFnZZM9i9k8TMbHipsxz8PqUjS5Xh_4tLsvb3_YYHTT0HmSYVv1Gtr816HQFnk28HMglyWA Cache-control: private, max-age=0 Date: Wed, 02 Mar 2022 15:58:11 GMT Content-type: application/xml; charset=UTF-8 <?xml version='1.0' encoding='UTF-8'?> <ListBucketResult xmlns='http://doc.s3.amazonaws.com/2006-03-01'> <Name>example_bucket</Name> <NextContinuationToken>CgtzaGliYS0yLmpwZw==</NextContinuationToken> <KeyCount>2</KeyCount> <MaxKeys>2</MaxKeys> <IsTruncated>true</IsTruncated> <Contents> ... </Contents> ... </ListBucketResult>
请注意,list-type
必须设置为 2
才能返回 NextContinuationToken
。
示例请求
GET /?continuation-token=NEXT_CONTINUATION_TOKEN&prefix=t&marker=test&list-type=2 HTTP/1.1 \ Host: BUCKET_NAME.storage.googleapis.com Date: Wed, 02 Mar 2022 16:00:00 GMT Content-Length: 0 Authorization: AUTHENTICATION_STRING
其中:
- NEXT_CONTINUATION_TOKEN 是您从上一个响应收到的
NextContinuationToken
值。 - BUCKET_NAME 是存储桶的名称。
- AUTHENTICATION_STRING 是您从 OAuth 2.0 Playground 收到的访问令牌。
如需详细了解如何对存储桶的结果进行分页,请参阅 List Objects
的 XML 参考文档。