このページでは、Cloud Storage でのオブジェクトの読み取りとダウンロードに関連するコンセプトについて説明します。
オブジェクトの読み取り
オブジェクトの読み取りとは、開いているネットワーク接続を介して、オブジェクト データまたは特定のバイト範囲をメモリに直接ストリーミング、消費、検査することを指します。取得されたペイロードはローカルに保存されるのではなく、エフェメラルであり、アプリケーション メモリ ストリーム、バッファ、パイプライン、または CPU/GPU メモリに直接保存されます。オブジェクトの読み取りは、トレーニング データセットやテンソル バッチを Pytorch や Jax などの AI や ML のフレームワークにストリーミングするなど、高パフォーマンスでスループットを重視するワークロードに適しています。
次のリストに、Cloud Storage で使用可能なオブジェクト読み取りの種類を示します。
オブジェクトをメモリに読み取る、またはインタラクティブなオブジェクト読み取り: データがインタラクティブに、またはメモリに消費される方法。クライアントはオブジェクト全体を取得し、そのすべてのバイトを連続した変数、バイト配列、またはメモリ内文字列に読み込みます。
ストリーミング読み取り: 転送全体が完了するのを待つのではなく、ネットワークから受信したデータをバイト ストリームとして直接使用する方法。
オブジェクトのダウンロード
オブジェクトのダウンロードは、Cloud Storage からローカル ファイル システム、ディスク、またはターゲット ストレージ デバイス上の永続ファイルにオブジェクト データを転送するエンドツーエンドのタスクです。インメモリ ストリーミング読み取りとは異なり、ダウンロードにはリモートバイトの取得とローカル ストレージへの commit の両方が含まれます。オブジェクトのダウンロードは、主に汎用ファイル管理、ローカル アーカイブ、データ バックアップ、オフライン ユーティリティの使用に適しています。
REST API を使用する場合、ダウンロードは HTTP または HTTPS の GET リクエストを使用して行われます。このリクエストには、オプションの Range ヘッダーを含めることができます。このヘッダーは、永続ストレージまたはローカル ストレージにダウンロードするオブジェクトの特定の部分を定義します。Range ヘッダーを使用して、中断されたダウンロードを再開することもできます。gRPC を使用する場合、ダウンロードには storage.v2.Storage/ReadObject ストリームまたは BidiReadObject ストリームが使用されます。
次のリストは、Cloud Storage で使用可能なオブジェクトのダウンロードの種類を示しています。
シンプルなダウンロード: オブジェクトのダウンロードの最も基本的な形式。クライアントは、1 回の連続転送でオブジェクト全体または指定されたバイト範囲を取得する単一のリクエストを送信します。
スライス化されたオブジェクトのダウンロード: 1 つの大きなオブジェクトを複数の小さな「スライス」(「チャンク」とも呼ばれます)に分割する、高パフォーマンスの戦略。クライアントは、複数の独立した同時リクエストを使用してこれらのスライスを並行してダウンロードし、ローカルでスライスを 1 つのファイルに再構成します。
オブジェクトの読み取りとダウンロードをサポートするツール
コンソール
Google Cloud コンソールを使用すると、次のオブジェクトの読み取りとダウンロードを実行できます。
コマンドライン
Google Cloud CLI を使用すると、次のオブジェクトの読み取りとダウンロードを実行できます。
クライアント ライブラリ
C++
C++ クライアント ライブラリを使用する場合は、次の種類の読み取りとダウンロードを実行できます。
C#
C# クライアント ライブラリを使用する場合は、次の種類の読み取りとダウンロードを実行できます。
Go
Go クライアント ライブラリを使用する場合は、次の種類の読み取りとダウンロードを実行できます。
Java
Java クライアント ライブラリを使用する場合は、次の種類の読み取りとダウンロードを実行できます。
Node.js
Node.js クライアント ライブラリを使用する場合は、次の種類の読み取りとダウンロードを実行できます。
PHP
PHP クライアント ライブラリを使用する場合は、次の種類の読み取りとダウンロードを実行できます。
Python
Python クライアント ライブラリを使用する場合は、次の種類の読み取りとダウンロードを実行できます。
Ruby
Ruby クライアント ライブラリを使用する場合は、次の種類の読み取りとダウンロードを実行できます。
REST API
REST API を使用してオブジェクトをダウンロードする場合に使用可能なリクエスト エンドポイントの詳細については、リクエスト エンドポイントをご覧ください。
JSON API
JSON API を使用する場合は、次の種類のダウンロードを実行できます。
XML API
XML API を使用する場合は、次の種類のダウンロードを実行できます。
次のステップ
- データを一般公開する。
- オブジェクトのダウンロードにチェックサムがどのように使用されるかを確認する。
- オブジェクトのアップロードについて学習する。
- オブジェクトのメタデータを表示して編集する。
- Storage Transfer Service を使用して Cloud Storage にデータを転送する方法を確認する。
- Compute Engine インスタンスからオブジェクトを転送する。