You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python生成Azure存储容器SAS URL?解决CopySourceNotVerified报错

解决方案

你遇到的CopySourceNotVerified错误,核心原因是使用了**Blob级SAS(sr=b)**作为复制源,而Blob复制操作要求源SAS具备足够的权限范围,容器级SAS(sr=c)更适配这个场景。

要生成sr=c的容器级SAS Token,需要替换原代码中的generate_blob_sas为generate_container_sas函数,同时调整对应的权限枚举和参数:

from azure.storage.blob import generate_container_sas, ContainerSasPermissions
from datetime import datetime, timedelta

account_name = 'account'
account_key = 'key'
container_name = 'feed'

# 生成容器级SAS Token
requiredSASToken = generate_container_sas(
    account_name=account_name,
    container_name=container_name,
    account_key=account_key,
    permission=ContainerSasPermissions(read=True),
    expiry=datetime.utcnow() + timedelta(hours=24)
)

关键调整说明:

  • 替换生成函数:用generate_container_sas替代generate_blob_sas,该函数专门用于生成容器级SAS,自动设置sr=c
  • 权限枚举切换:使用ContainerSasPermissions而非BlobSasPermissions,确保权限范围匹配容器级操作
  • 移除Blob参数:不需要再指定blob_name,因为SAS的作用范围是整个容器

这样生成的SAS Token就会包含sr=c,用它作为复制源即可通过验证,完成Blob复制操作。

内容的提问来源于stack exchange,提问作者Deepak Kothari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:45:38