Kann mir jemand sagen, ob es möglich ist, eine CSV-Datei direkt aus dem Azure-Blob-Speicher als Stream zu lesen und mit Python zu verarbeiten? Ich weiß, dass dies mit C # .Net (siehe unten) möglich ist, wollte aber die entsprechende Bibliothek in Python) kennen, um dies zu tun.
CloudBlobClient client = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = client.GetContainerReference("outfiles");
CloudBlob blob = container.GetBlobReference("Test.csv");*
Ja, das ist sicherlich möglich. Auschecken 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')
Die vollständige SDK-Dokumentation finden Sie hier: http://Azure-storage.readthedocs.io .
Man kann mit python wie folgt aus blob streamen:
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
Geben Sie hier Ihren Azure-Abonnement-Azure-Speichernamen und den geheimen Schlüssel als Kontoschlüssel ein
block_blob_service = BlockBlobService(account_name='$$$$$$', account_key='$$$$$$')
Dadurch wird der Blob trotzdem abgerufen und an der aktuellen Position als 'output.jpg' gespeichert.
block_blob_service.get_blob_to_path('you-container_name', 'your-blob', 'output.jpg')
Dies wird Text/Item von Blob bekommen
blob_item= block_blob_service.get_blob_to_bytes('your-container-name','blob-name')
blob_item.content