結果をページ分けする

このページでは、さまざまな Cloud Storage ツールとライブラリの処理結果を複数のページに分割する方法について説明します。大量のオブジェクトまたはバケットを一覧表示する場合は、ページ分けが必要になります。

コンソール

Google Cloud コンソールの [バケット] ページと [バケットの詳細] ページでは、バケットやオブジェクトの処理結果が自動的にページ分けされます。


[バケット] ページを開く

コマンドライン

Google Cloud CLI では、バケットとオブジェクトのリストが自動的にページ分けされます。

クライアント ライブラリ

C++

クライアント ライブラリは、デフォルトでページ分けを実行します。ページ分けをサポートする関数を呼び出すと、レスポンスでイテレータが返されます。このイテレータの使用例については、C++ リファレンス ドキュメントで ListObjects() をご覧ください。

C#

クライアント ライブラリは、デフォルトでページ分けを実行します。ページ分けをサポートする関数を呼び出すと、レスポンスでイテレータが返されます。このイテレータの使用例については、C# リファレンス ドキュメントで ListObjects() をご覧ください。

Go

クライアント ライブラリは、デフォルトでページ分けを実行します。ページ分けをサポートする関数を呼び出すと、レスポンスでイテレータが返されます。このイテレータの使用例については、Go リファレンス ドキュメントで Bucket.Objects をご覧ください。

Java

クライアント ライブラリは、デフォルトでページ分けを実行します。ページ分けをサポートする関数を呼び出すと、レスポンスでイテレータが返されます。このイテレータの使用例については、Java リファレンス ドキュメントで Storage.Objects.list をご覧ください。

Node.js

クライアント ライブラリは、デフォルトでページ分けを実行します。ページ分けをサポートする関数を呼び出すと、レスポンスでイテレータが返されます。このイテレータの使用例については、Node.js リファレンス ドキュメントで getFiles() をご覧ください。

PHP

クライアント ライブラリは、デフォルトでページ分けを実行します。ページ分けをサポートする関数を呼び出すと、レスポンスでイテレータが返されます。このイテレータの使用例については、PHP リファレンス ドキュメントで Objects をご覧ください。

Python

クライアント ライブラリは、デフォルトでページ分けを実行します。ページ分けをサポートする関数を呼び出すと、レスポンスでイテレータが返されます。このイテレータの使用例については、Python リファレンス ドキュメントでページ イテレータをご覧ください。

Ruby

クライアント ライブラリは、デフォルトでページ分けを実行します。ページ分けをサポートする関数を呼び出すと、レスポンスでイテレータが返されます。このイテレータの使用例については、Ruby リファレンス ドキュメントで Google::Cloud::Storage::File::List をご覧ください。

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 から取得するアクセス トークンです。

結果のページ分けの詳細については、JSON リファレンス ドキュメントで Objects: list または Buckets: list をご覧ください。

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>

NextContinuationToken を返すには、list-type2 に設定する必要があります。

リクエストの例

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 から取得するアクセス トークンです。

バケットからの結果を使用したページ分けの詳細については、XML リファレンス ドキュメントで List Objects をご覧ください。

次のステップ