如何使用 nodejs 在 azure blob 存储上设置内容类型

How to set contenttype on azure blob storage with nodejs

我有一个 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);
    });
}

关于我做错了什么有什么想法吗?

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

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

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

它又变了,根据源代码,上传可以期望一个 BlockBlobUploadOptions,带有一个可选的 blobHTTPHeaders object。这使您可以设置 http headers 以在请求时为 blob 设置。 太糟糕了,none 的示例详细介绍了上传 blob 时要设置的内容。

这对我有用

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