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

时间:2016-07-09 15:05:42

标签: node.js azure azure-storage 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);
    });
}

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

2 个答案:

答案 0 :(得分:8)

根据Github源代码中的评论,option架构已更改,要定义contentType,请尝试使用以下代码段:

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

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

答案 1 :(得分:1)

它再次发生了变化,根据源代码,上载可以包含一个BlockBlobUploadOptions和一个可选的blobHTTPHeaders对象。这使您可以设置在请求时为blob设置的http标头。 太糟糕了,没有一个样本详细说明上传Blob时要设置的内容。

这对我有用

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