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に渡す。