中野智文のブログ

データ・マエショリストのメモ

Azure Storage Blob に python で、stream upload

背景

Azure Storage Blobにpython で、stream upload したので、メモ。

こうした

Azure 自体触ったことないので、よくわからないが、

from azure.storage.blob import BlobServiceClient

というライブラリを使った方法(レガシーなライブラリも存在するらしい)。 詳しくは、ここを参照。

    blob_service_client = BlobServiceClient(account_url=AZURE_STORAGE_ACCOUNT_STRING)
    blob_client = blob_service_client.get_blob_client(container=CONTAINER_NAME, blob=BLOB_NAME)
    blob_client.upload_blob(sys.stdin.buffer, length=length)

ここで、AZURE_STORAGE_ACCOUNT_STRINGは、然るべき方法で取得した文字列(実は知らない)。 CONTAINER_NAMEはコンテナ名の文字列、BLOB_NAME はblobの文字列。 sys.stdin.buffer は標準入力のバイナリ。 大切なのは、length 。これがないと、エラー。 ストリームなのに、サイズが分かってないとダメ。これは仕様(書いてないけど)としては厳しいなあ…

まとめ

stream upload したければ、サイズを先に調べて、lengthに渡す。