Dav*_*tes 7 azure azure-storage-files
当我使用共享访问签名(SAS)令牌构建URL时,Azure文件存储当前遇到问题。该文件将在浏览器中下载,但是内容类型始终是application / octet-stream,而不是更改为与文件的mime类型匹配。如果我将文件放在Azure BLOB存储中,并使用SAS令牌构建URL,则它将为我的文件发送正确的内容类型(图像/ jpeg)。
我已将存储帐户从V1升级到V2,认为这是问题所在,但并不能解决问题。
有谁知道我可以尝试做些什么,使Azure文件存储使用带有SAS令牌的URL返回正确的内容类型来下载文件?
到目前为止,这些是我发现的内容类型的唯一修复:
对我来说,这些都不是可以接受的选择。如果用户通过门户或 Microsoft Azure Storage Explore 上传文件并忘记更改内容类型,前两种情况可能会导致错误。我也不想编写 Azure Functions 或 Web 作业来监视和修复此问题。
由于 Blob 存储在通过 Microsoft Azure Storage Explore 或通过门户上传时不会出现相同的问题,因此成本要低得多,并且都可以使用 SAS 令牌,因此我们正在转向 Blob 存储。我们确实失去了将驱动器安装到本地计算机并使用 Beyond Compare 之类的工具进行文件比较的能力,但这是我们可以忍受的缺点。
如果有人有比上面提到的更好的解决方案来解决这个问题,我会很乐意投票。不过,我认为微软必须做出改变才能解决这个问题。
当我通过门户将 jpeg 文件上传到文件共享时,内容类型更改为application/octet-stream确实。但我无法重现您的下载问题。
我没有在 SAS 请求 uri 中指定内容类型,但文件只是作为 jpeg 文件下载。已在 SDK(帐户 SAS/存储访问策略/文件本身的 SAS)或 REST API 中进行测试,即使没有内容类型,两者也能正常工作。
您可以尝试使用下面的代码指定内容类型。
SharedAccessFileHeaders header = new SharedAccessFileHeaders()
{
ContentDisposition = "attachment",
ContentType = "image/jpeg"
};
string sasToken = file.GetSharedAccessSignature(sharedPolicy,header);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4364 次 |
| 最近记录: |