15

我有一个 nodejs 服务器,正在使用 azure-storage 模块并尝试将 wav 文件上传到 azure blob 存储。

我正在尝试将 blob 上的 contentType 设置为“audio/wav”,但它在存储中显示为“application/octet-stream”。代码是:

 upload: function (id, buffer, mimeType, callback) {
    self = this;
    var size = buffer.length;
    var stream = streamifier.createReadStream(buffer);
    var options = { contentType: 'audio/wav' };
    self.blobService.createBlockBlobFromStream(self.containerName, id, stream, size, options,  function (error, result, response) {
        if (error) {
            callback(error);
        }
        callback(null);
    });
}

关于我做错了什么的任何想法?

4

2 回答 2

19

它又变了,根据源代码,上传可以期待一个 BlockBlobUploadOptions,带有一个可选的 blobHTTPHeaders 对象。这使您可以在请求时为 blob 设置 http 标头。太糟糕了,没有一个示例详细说明上传 blob 时要设置的内容。

这对我有用

const blobOptions = { blobHTTPHeaders: { blobContentType: 'text/plain' } };
const uploadBlobResponse = await blockBlobClient.upload(ascii, ascii.length, blobOptions);
于 2019-11-30T20:10:42.440 回答
8

根据Github源代码中的评论,option架构发生了变化,要定义contentType,请尝试使用以下代码片段:

var options = {contentSettings:{contentType:'audio/wav'}}

如有任何进一步的疑虑,请随时告诉我。

于 2016-07-11T02:43:06.630 回答