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

Azure Blob跨存储账户预签名URL拷贝请求问题求助

Azure Blob跨存储账户复制(SAS方式)正确请求配置

以下是针对问题的具体解决方案和正确请求格式:

  • 目标URL带SAS时,无需Authorization头
    如果目标Blob的URL已经包含有效的SAS令牌,直接使用这个URL发起PUT请求即可,不要额外设置Authorization头——SAS本身已经包含了授权信息,额外的Authorization头会导致冲突。

  • 源URL必须包含带读取权限的SAS
    x-ms-copy-source的值必须是完整的源Blob URL,且附带的SAS令牌必须拥有读取权限(r),否则无法读取源Blob内容。不需要设置x-ms-copy-source-authorization头,这个头仅适用于源存储不是Azure Blob的场景,Azure内部跨账户复制直接通过URL里的SAS授权即可。

  • 必要请求头规范

    • x-ms-date:必须是当前UTC时间,格式严格遵循YYYY-MM-DDTHH:MM:SSZ,确保和服务器时间偏差不超过15分钟。
    • x-ms-version:必须与目标SAS令牌使用的API版本一致,或使用目标存储账户支持的最新稳定版本。
    • x-ms-requires-sync: "true":保持这个配置,确保复制操作同步完成(成功返回201 Created)。

正确请求示例(目标URL带SAS)

PUT https://target-account.blob.core.windows.net/target-container/target-blob?sv=2022-11-02&ss=b&srt=o&sp=wac&se=2023-12-31T23:59:59Z&st=2023-01-01T00:00:00Z&spr=https&sig=xxx

x-ms-copy-source: "https://source-account.blob.core.windows.net/source-container/source-blob?sv=2022-11-02&ss=b&srt=o&sp=r&se=2023-12-31T23:59:59Z&st=2023-01-01T00:00:00Z&spr=https&sig=yyy"
x-ms-requires-sync: "true"
x-ms-date: 2023-01-03T17:27:02Z
x-ms-version: 2022-11-02

请求体为空

排查关键点

  • 验证源SAS权限:确认包含r(读取)权限,否则无法拉取源Blob。
  • 验证目标SAS权限:确认包含w(写入)和c(创建)权限,否则无法创建目标Blob。
  • 避免SAS令牌编码:直接使用生成的原始SAS字符串,不要做URL编码或解码操作,否则令牌会失效。
  • 时间同步:确保本地系统时间与UTC时间偏差在15分钟内,否则会触发授权失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:25:20