我正在尝试使用azure-storage-blob
包动态生成blob SAS URL。This solution仅在您拥有现在已弃用的azure-storage
包时有效,该包无法再安装。
我需要一种方法来模拟BlockBlobService.generate_blob_shared_access_signature
的行为以生成blob SAS URL,如下所示:
from datetime import datetime, timedelta
from azure.storage.blob import (
BlockBlobService,
ContainerPermissions,
BlobPermissions,
PublicAccess,
)
AZURE_ACC_NAME = '<account_name>'
AZURE_PRIMARY_KEY = '<account_key>'
AZURE_CONTAINER = '<container_name>'
AZURE_BLOB='<blob_name>'
block_blob_service = BlockBlobService(account_name=AZURE_ACC_NAME, account_key=AZURE_PRIMARY_KEY)
sas_url = block_blob_service.generate_blob_shared_access_signature(AZURE_CONTAINER,AZURE_BLOB,permission=BlobPermissions.READ,expiry= datetime.utcnow() + timedelta(hours=1))
print('https://'+AZURE_ACC_NAME+'.blob.core.windows.net/'+AZURE_CONTAINER+'/'+AZURE_BLOB+'?'+sas_url)
如果你有一个过时的软件包,上面的解决方案可以工作,但是我需要一个不需要它的解决方案。
3条答案
按热度按时间wwodge7n1#
看一下下面的代码:
有关详细信息,请查看此文档:链接
ippsafx72#
请尝试以下代码:
您可以在此处了解有关使用新的Storage SDK生成SAS令牌的更多信息:https://azure-storage.readthedocs.io/ref/azure.storage.blob.sharedaccesssignature.html.
gxwragnw3#
The accepted answer在
azure-storage-blob==1.5.0
和Python 3.8.13
中不适用我不得不使用
generate_blob_shared_access_signature
函数代替。Documentation。