javascript - 使用 UploadBrowserDataToBlockBlob 从 Javascript 上传时在 Azure Blob 上设置 ContentType
问题描述
要在浏览器中显示 PDF 文件 - 而不是下载 - 您需要为它们提供application/pdf
内容类型标题。
默认情况下,Azure Blob 存储文件设置为application/octet-stream
. 可以通过在 blob 上更新内容类型在后端更改内容类型……我们希望在上传时设置它。
@azure/storage-blob
使用(文档)npm 包上传 PDF 文件我们找不到正确的设置方法。
尝试了以下代码的多次迭代无济于事。
...
const blobOptions = {
metadata: { 'contentType': 'application/pdf' },
... other options
};
Azure.uploadBrowserDataToBlockBlob(aborter, file, blob, blobOptions)
...
- 注意 - 这可以用来为任何东西设置正确的 mime 类型......但是浏览器似乎在转换 .jpg、.png 等时没有问题......只有我见过的 .pdf 有问题。
解决方案
我的同事找到了答案:
...
const blobOptions = {
blobHTTPHeaders: { blobContentType: 'application/pdf' },
... other options
};
Azure.uploadBrowserDataToBlockBlob(aborter, file, blob, blobOptions)
...
并将x-ms-blob-content-type
标头添加到 Azure 存储 CORS 设置。
推荐阅读
- javascript - JS 在 Dropbox 上使用 SQL 选择
- c# - 当 SQL 返回浮点数时,ExecuteScalar 返回双精度
- c# - 为什么 .NET 框架开发人员在展开循环时选择 10(在 x64 12 上)作为因素?
- javascript - 涉及数组和 json javascript 的基本 2d 游戏问题
- matlab - 如何使用ode45在matlab中求解耦合微分方程
- c++ - `~uintptr_t(value)` 方法体是什么意思?C++
- sql - 选择两个(计算的)日期值中的较大者
- php - 为什么 PHP isset 和 Null 合并运算符使用连接运算符抛出通知?
- ionic3 - 如何使用 pickContact() 显示选定的联系人 - ionic-v3
- c# - .NET Core 模型绑定问题