オブジェクトの読み取りとダウンロード

このページでは、Cloud Storage でのオブジェクトの読み取りとダウンロードに関連するコンセプトについて説明します。

オブジェクトの読み取り

オブジェクトの読み取りとは、開いているネットワーク接続を介して、オブジェクト データまたは特定のバイト範囲をメモリ内で直接ストリーミング、使用、検査することを指します。取得されたペイロードはローカルに保存されるのではなく、エフェメラルであり、アプリケーションのメモリ ストリーム、バッファ、パイプライン、または CPU/GPU メモリに直接存在します。オブジェクトの読み取りは、Pytorch や Jax などの AI / ML フレームワークにトレーニング データセットやテンソル バッチをストリーミングするような、高パフォーマンスでスループット集約型のワークロードに適しています。

次のリストは、Cloud Storage で使用可能なオブジェクト読み取りの種類を示しています。

オブジェクトのダウンロード

オブジェクトのダウンロードは、Cloud Storage からローカル ファイル システム、ディスク、またはターゲット ストレージ デバイス上の永続ファイルにオブジェクト データを転送するエンドツーエンドのタスクです。インメモリ ストリーミング読み取りとは異なり、ダウンロードにはリモート バイトの取得とローカル ストレージへのコミットの両方が含まれます。オブジェクトのダウンロードは、主に汎用ファイル管理、ローカル アーカイブ、データ バックアップ、オフライン ユーティリティの使用に適しています。

REST API を使用する場合、ダウンロードは HTTP または HTTPS の GET リクエストを使用して実行されます。このリクエストには、永続ストレージまたはローカル ストレージにダウンロードするオブジェクトの特定の部分を定義するオプションの Range ヘッダーを含めることができます。Range ヘッダーを使用して、中断されたダウンロードを再開することもできます。gRPC を使用する場合、ダウンロードでは storage.v2.Storage/ReadObject または BidiReadObject ストリームが使用されます。

Cloud Storage で使用可能なオブジェクト ダウンロードの種類は次のとおりです。

  • シンプル ダウンロード: オブジェクト ダウンロードの最も基本的な形式です。クライアントは、オブジェクト全体または指定されたバイト範囲を 1 回のリクエストで取得し、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 を使用してオブジェクトをダウンロードする場合に使用可能なリクエスト エンドポイントの詳細については、リクエスト エンドポイントをご覧ください。

次のステップ