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

Azure存储:如何使用Rest API向文件共享上传Word/CSV等文件

报错问题解决

你遇到的InvalidAuthenticationInfo报错是授权方式混用导致的:

  • 你已经生成了SAS令牌,就不需要在请求头里加Authorization: SharedKey字段,直接把完整SAS令牌拼接在请求URL末尾即可。
  • 如果你坚持使用SharedKey授权,需要按照Azure官方签名规则自行计算请求签名,不能直接填充占位密钥,对新手来说优先用SAS令牌更简单,无需自行计算签名。

完整上传文件操作流程

你现在调用的是Azure Files服务的REST API,上传文件需要分两步完成:

第一步:创建空文件占位

调用Create File接口,请求结构如下:

PUT https://mystorageaccount.file.core.windows.net/sharedname/subdir/BlobTesting.txt?[你的SAS令牌] HTTP/1.1
Host: mystorageaccount.file.core.windows.net
x-ms-type: file
x-ms-file-permission: inherit
x-ms-file-attributes: ReadOnly
x-ms-file-creation-time: now
x-ms-file-last-write-time: now
x-ms-content-length: [实际文件的总字节数]
Date: Wed, 08 Sep 2021 23:23:20 GMT
x-ms-version: 2020-04-08

这里的x-ms-content-length必须和你最终要上传的文件实际大小完全一致。

第二步:上传实际文件内容

调用Put Range接口上传内容,请求结构如下:

PUT https://mystorageaccount.file.core.windows.net/sharedname/subdir/BlobTesting.txt?[你的SAS令牌]&comp=range HTTP/1.1
Host: mystorageaccount.file.core.windows.net
x-ms-write: update
x-ms-range: bytes=0-[实际文件总字节数-1]
Content-Length: [本次上传的内容字节数]
Date: Wed, 08 Sep 2021 23:23:20 GMT
x-ms-version: 2020-04-08

[请求体填写你要上传的文件二进制/文本内容]

如果是大文件,可以拆分为多个数据块,分别调用Put Range接口上传不同的字节区间即可。

注意事项

  • 生成SAS令牌时需要确认已经给目标文件共享开通了写入权限,且有效期覆盖当前请求时间。
  • 如果你使用的是Blob存储而非文件共享,接口规则会有差异,当前你使用的file.core.windows.net是文件存储服务的域名,和你创建的文件共享资源是匹配的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:45:04