【问题标题】:Upload a file stream to AZURE BLOB STORAGE using REST APIs使用 REST API 将文件流上传到 AZURE BLOB STORAGE
【发布时间】: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 或任何其他方法?

【问题讨论】:

    标签: azure azure-blob-storage rest azure-rest-api


    【解决方案1】:

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

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

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

    【讨论】: