使用 REST API 将文件流上传到 AZURE BLOB STORAGE

Posted

技术标签:

【中文标题】使用 REST API 将文件流上传到 AZURE BLOB STORAGE【英文标题】:Upload a file stream to AZURE BLOB STORAGE using REST APIs 【发布时间】:2021-10-08 11:37:55 【问题描述】:

我正在尝试使用以下代码将文件流上传到 Azure Blob:

 const requestOptions = 
    url: url,
    method: 'PUT',
    headers: 
      'Content-Type': 'application/octet-stream',
      'Content-Length': contentLength,
      'x-ms-blob-type': 'BlockBlob',
      'x-ms-date': strTime,
      'x-ms-version': '2019-02-02'
    ,
    body: readStream
 

我拥有的数据流太大,我无法将其存储在内存中并停止代码流以计算内容长度,那么有没有办法在没有内容长度的情况下发出 REST 请求上传 blob?

我遇到了一个解决方案Link,他们尝试在没有文件或流的内容长度的情况下进行上传调用。这样的事情是否可以利用 REST 或任何其他方法?

【问题讨论】:

【参考方案1】:

所以有没有办法让 REST 请求上传 blob 内容长度?

上传 blob 时需要内容长度,因此您不能在请求中省略它。来自这个link

如果您的输入数据太大,一种可能的解决方案是分块读取输入数据并使用Put Block 操作上传它们,然后最后执行Put Block List 来提交blob。

【讨论】:

以上是关于使用 REST API 将文件流上传到 AZURE BLOB STORAGE的主要内容,如果未能解决你的问题,请参考以下文章

将图像(base64 字符串)作为文件流上传到 Web API

使用 phonegap 将文件作为流上传到 cloudinary

如何使用 python 将流上传到 AWS s3

如何使用REST API将文件存储卷安装到azure容器实例

将图片二进制流上传到服务器

使用 rest api 从 Web 应用程序将文件上传到 Azure 文件存储