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

Azure跨存储账户复制Blob遇CannotVerifyCopySource错误求解决

解决Azure Blob跨容器复制时的CannotVerifyCopySource错误

你的错误源于使用start_copy_from_url时默认采用匿名访问源Blob,但源存储账户已禁用公共访问。无需修改公共访问设置,可通过以下两种方案解决:

方案一:源与目标属于同一存储账户

直接利用存储账户的连接字符串授权访问源Blob,无需额外生成SAS:

from azure.storage.blob import BlobServiceClient

# 初始化存储账户客户端
blob_service_client = BlobServiceClient.from_connection_string(connectionstring)

# 获取源、目标Blob客户端
src_blob_client = blob_service_client.get_blob_client(src_container, blob_name)
dst_blob_client = blob_service_client.get_blob_client(dst_container, b_name)

# 启动复制操作
copy_result = dst_blob_client.start_copy_from_url(src_blob_client.url)

方案二:源与目标属于不同存储账户

给源Blob生成带只读权限的SAS(共享访问签名)URL,用该URL作为复制源。SAS是临时授权方式,不会开启全局公共访问:

from azure.storage.blob import BlobServiceClient, generate_blob_sas, BlobSasPermissions
from datetime import datetime, timedelta

# 初始化源存储账户客户端
src_connection_string = "你的源存储账户连接字符串"
src_blob_service_client = BlobServiceClient.from_connection_string(src_connection_string)
src_blob_client = src_blob_service_client.get_blob_client(src_container, blob_name)

# 生成SAS令牌(设置1小时有效期,仅授予读权限)
sas_token = generate_blob_sas(
    account_name=src_blob_service_client.account_name,
    container_name=src_container,
    blob_name=blob_name,
    account_key=src_blob_service_client.credential.account_key,
    permission=BlobSasPermissions(read=True),
    expiry=datetime.utcnow() + timedelta(hours=1)
)

# 拼接带SAS的源Blob URL
src_blob_sas_url = f"{src_blob_client.url}?{sas_token}"

# 初始化目标存储账户客户端并启动复制
dst_blob_service_client = BlobServiceClient.from_connection_string(connectionstring)
dst_blob_client = dst_blob_service_client.get_blob_client(dst_container, b_name)
copy_result = dst_blob_client.start_copy_from_url(src_blob_sas_url)

注意事项

  • 确保使用的连接字符串拥有足够权限:源侧需具备Blob读取权限,目标侧需具备Blob写入权限。
  • SAS令牌的有效期可根据实际需求调整,避免过长暴露风险。

内容的提问来源于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 03:55:17