将文件保存到 Azure Blob 中

And*_*rew 5 azure python-3.x python-requests azure-functions

我正在使用下面的 python 代码将文件保存到本地文件夹中。我想将此文件直接保存到 Azure Blob 中。我不希望文件存储在本地然后上传到 blob。

我尝试在文件夹变量中给出 blob 位置,但它不起作用。我有一个 excel 文件,我想从 Web 浏览器读取该文件并使用 python 将其保存到 Azure blob 中。

 folder = 'Desktop/files/ab'
    
 r = requests.get(api_end_point, headers=api_headers, stream=True)
 with open(folder, 'wb') as f:
    f.write(r.content)
Run Code Online (Sandbox Code Playgroud)

1_1*_*1_1 5

首先,您应该以类似流的形式获取文件。

import os
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
Run Code Online (Sandbox Code Playgroud)
connect_str = os.getenv('str')
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
container_name = "test"
container_client = blob_service_client.get_container_client(container_name)
blob_client = blob_service_client.get_blob_client(container_name, "MyFirstBlob.txt")
blob_client.upload_blob(req.get_body(), blob_type="BlockBlob")
Run Code Online (Sandbox Code Playgroud)

在我这边,我将数据放入请求正文中,然后将其上传到 azure blob。是流。您还可以在其中放入流。

这些是官方文档:

https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python#upload-blobs-to-a-container

https://learn.microsoft.com/en-us/azure/developer/python/sdk/storage/azure-storage-blob/azure.storage.blob.blobserviceclient?view=storage-py-v12

https://learn.microsoft.com/en-us/azure/developer/python/sdk/storage/azure-storage-blob/azure.storage.blob.blobclient?view=storage-py-v12#upload-blob-数据--blob-type--blobtype-blockblob---blockblob----长度-无--元数据-无----kwargs-