如何使用nodejs在azure blob存储上设置contenttype

klb*_*klb 7 azure azure-storage node.js contenttype

我有一个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);
    });
}
Run Code Online (Sandbox Code Playgroud)

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

Big*_*ddy 15

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

这对我有用

const blobOptions = { blobHTTPHeaders: { blobContentType: 'text/plain' } };
const uploadBlobResponse = await blockBlobClient.upload(ascii, ascii.length, blobOptions);
Run Code Online (Sandbox Code Playgroud)


Gar*_*SFT 10

根据Github源代码中的注释,option架构已经改变,要定义contentType,请尝试使用以下代码片段:

var options = {contentSettings:{contentType:'audio/wav'}}
Run Code Online (Sandbox Code Playgroud)

如有任何疑问,请随时告诉我.