在PYTHON中使用SAS URI从AZURE BLOB CONTAINER下载文件

dbf7pr2w  于 2023-06-24  发布在  Python
关注(0)|答案(2)|浏览(103)

我有Azure容器,我保存一些文件。我需要使用Python代码访问它们,我在JAVA中做了同样的事情,但我无法在Python中复制它

//这是java代码。

CloudBlobContainer Con = new CloudBlobContainer("Some SAS URI");

CloudBlockBlob blob1 = Con.getBlockBlobReference(fileName);

blob1.downloadToFile(filePath+fileName+userName);
ikfrs5lh

ikfrs5lh1#

python中没有等价的方法,可以看看Container class of python
您应该始终使用BlockBlobService与sas令牌(如果您有sas uri,您可以从中获取sas令牌)或帐户密钥,如果您使用sas令牌,如下所示:

from azure.storage.blob import BlockBlobService

blobservice = BlockBlobService("storage_account",sas_token="?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-24T10:01:58Z&st=2019-04-23T02:01:58Z&spr=https&sig=xxxxxxxxx")
blobservice.get_blob_to_path("container_name","blob_name","local_file_path")
vhipe2zx

vhipe2zx2#

如果您使用的是没有BlockBlobService的较新版本,则可以使用BlobClient

from azure.storage.blob import BlobClient

blob_client = BlobClient.from_blob_url(sas_url)
with open(file=blob_client.blob_name, mode="wb") as blob_file:
    download_stream = blob_client.download_blob()
    blob_file.write(download_stream.readall())

相关问题