通过 python 生成共享访问签名

generate shared access signature through python

我正在尝试通过 python 为已经在 blob 存储中的文件生成共享访问签名 link,但是出了点问题,我在生成时收到了这条消息link 在网络浏览器上: “服务器无法验证请求。确保授权 header 的值正确形成,包括签名。”

我在右侧按钮上从我的容器名称生成密钥获取共享访问签名,但我无法继续。

from datetime import datetime
from datetime import timedelta
#from azure.storage.blob import BlobService

datetime.utcnow()

from azure.storage.blob import generate_blob_sas, AccountSasPermissions,AccessPolicy


def generate_link():

    account_name='my_account_name_storage'
    container_name='container_name'
    blob_name='file_name.xsl'
    account_key='?sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-09-17T05:49:57Z&st=2020-09-16T21:49:57Z&spr=https&sig=sdfsdhgbjgnbdkfnglfkdnhklfgnhklgf%30'
    url = f"https://{account_name}.blob.core.windows.net/{container_name}/{blob_name}"
    sas_token = generate_blob_sas(
        account_name=account_name,
        account_key=account_key,
        container_name=container_name,
        blob_name=blob_name,
        permission=AccountSasPermissions(read=True),
        expiry=datetime.utcnow() + timedelta(hours=1)
    )
    print(sas_token)
    url_with_sas = f"{url}?{sas_token}"
    print(url_with_sas)


generate_link()```


你的代码中 account_key 是错误的。

要找到您的存储帐户 account_key,请导航至 Azure 门户 -> 您的存储帐户 -> 设置 -> 访问密钥,然后您可以看到 account_key。截图如下: