ストリーミング転送

Cloud Storage ではストリーミング転送がサポートされるため、データを最初にファイルに保存することなく、Cloud Storage アカウントと相互にデータのストリーミングを行うことができます。ストリーミング転送は、プロセスから生成されたデータを Cloud Storage に直接アップロードする場合や、Cloud Storage からプロセスにデータをダウンロードする場合に便利です。

ストリーミング転送を行うには、gsutil コマンドライン ツールを使用するか、boto クライアント ライブラリ プラグインを使用する Python アプリケーションをビルドします。

gsutil を使用したアップロードまたはダウンロード

gsutil を使用してプロセスから Cloud Storage オブジェクトへのストリーミング アップロードを行うには、データを gsutil cp コマンドに連結し、ソース URL に対してダッシュを使用します。

次の例では、collect_measurements プロセスによって生成されたデータを data_measurements Cloud Storage オブジェクトにストリーミングします。

collect_measurements | gsutil cp - gs://my_app_bucket/data_measurements

gsutil を使用して Cloud Storage オブジェクトからプロセスへのストリーミング ダウンロードを行うには、gsutil cp コマンドを実行し、ターゲット URL に対してダッシュを使用し、データをプロセスに連結します。

次の例では、data_measurements Cloud Storage オブジェクトから analyze_data プロセスにデータをストリーミングします。

gsutil cp gs://my_app_bucket/data_measurements - | analyze_data

Cloud Storage オブジェクトのデータを、sort などの Linux の標準コマンドにストリーミングすることもできます。

gsutil cp gs://my_app_bucket/data_measurements - | sort

Python と boto プラグインを使用したアップロードまたはダウンロードのストリーミング

Python アプリケーションで boto クライアント ライブラリ プラグインを使用してアップロードのストリーミングを実行するには、次のコードを使用します。

dst_uri = boto.storage_uri(<bucket> + '/' + <object>, 'gs')
dst_uri.new_key().set_contents_from_stream(<stream object>)

たとえば、次のコードは data_file という名前のファイルを同じ名前のオブジェクトにストリーミング アップロードします。

filename = 'data_file'
MY_BUCKET = 'my_app_bucket'
my_stream = open(filename, 'rb')
dst_uri = boto.storage_uri(MY_BUCKET + '/' + filename, 'gs')
dst_uri.new_key().set_contents_from_stream(my_stream)

boto を使用してストリーミング ダウンロードを実行するには、次のコードを使用します。

import sys

src_uri = boto.storage_uri(<bucket> + '/' + <object>, 'gs')
src_uri.get_key().get_file(sys.stdout)

たとえば、次のコードは data_file という名前のオブジェクトのストリーミング ダウンロードを実行します。

downloaded_file = 'saved_data_file'
MY_BUCKET = 'my_app_bucket'
object_name = 'data_file'
src_uri = boto.storage_uri(MY_BUCKET + '/' + object_name, 'gs')
src_uri.get_key().get_file(sys.stdout)
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Storage ドキュメント