web-dev-qa-db-ja.com

Azure Blob-Pythonを使用して読み取り

Azure blobストレージからcsvファイルをストリームとして直接読み取り、Pythonを使用して処理できるかどうかを教えてもらえますか? C#.Net(以下に示す)を使用して実行できることは知っていますが、これを行うにはPythonの同等のライブラリを知りたいと思いました。

CloudBlobClient client = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = client.GetContainerReference("outfiles");
CloudBlob blob = container.GetBlobReference("Test.csv");*
10
AngiSen

はい、そうすることは確かに可能です。チェックアウト - Azure Storage SDK for Python

from Azure.storage.blob import BlockBlobService

block_blob_service = BlockBlobService(account_name='myaccount', account_key='mykey')

block_blob_service.get_blob_to_path('mycontainer', 'myblockblob', 'out-sunset.png')

ここで完全なSDKドキュメントを読むことができます: http://Azure-storage.readthedocs.io

10
Gaurav Mantri

pythonのようにblobからストリーミングできます:

from tempfile import NamedTemporaryFile
from Azure.storage.blob.blockblobservice import BlockBlobService

entry_path = conf['entry_path']
container_name = conf['container_name']
blob_service = BlockBlobService(
            account_name=conf['account_name'],
            account_key=conf['account_key'])

def get_file(filename):
    local_file = NamedTemporaryFile()
    blob_service.get_blob_to_stream(container_name, filename, stream=local_file, 
    max_connections=2)

    local_file.seek(0)
    return local_file
1
Daniel R

AzureサブスクリプションのAzureストレージ名と秘密キーをアカウントキーとしてここに入力します

block_blob_service = BlockBlobService(account_name='$$$$$$', account_key='$$$$$$')

これはまだblobを取得し、現在の場所に「output.jpg」として保存します

block_blob_service.get_blob_to_path('you-container_name', 'your-blob', 'output.jpg')

これはblobからテキスト/アイテムを取得します

blob_item= block_blob_service.get_blob_to_bytes('your-container-name','blob-name')

    blob_item.content
1
Sunil Bisht