【发布时间】:2018-07-11 22:08:33
【问题描述】:
在我的 Web API 中,我使用以下代码来创建 blob:
var container = Client.GetContainerReference(DefaultContainer);
var blockBlob = container.GetBlockBlobReference(blobName);
blockBlob.UploadFromStream(fileStream);
blockBlob.Properties.ContentType = "video/mp4";
blockBlob.SetProperties();
当从外部下载文件时,我需要 ContentType 标头值为video/mp4。
但是,当我使用外部链接下载该文件时,Azure 不会添加相应的 ContentType。 (它实际上并没有附加任何东西)。
那么,我该如何实现呢?
【问题讨论】:
-
我在我这边测试,在Azure blob中点击下载,在浏览器中打开了一个链接。它显示了一个 mp4 文件。然后我右键单击另存为,它会在我的本地文件夹中下载一个 mp4 文件。我设置了一个断点来查看blob的属性。它显示正确的内容类型,如下所示:image.ibb.co/kxnEuR/blobtype.png。所以我不确定你是如何操作的。
-
ContentType 是网络服务器随文件返回的标头。在您的情况下,它只是您通过 SDK 传递给 Azure 的元数据。 ibb.co/d64oM6msdn.microsoft.com/en-us/library/…
-
所以您的问题似乎与 web api 相关,而不是 Azure。 web api 默认只支持 json 或 xml 类型。如果我们想显示'video/mp4'类型,我们需要为其添加相应的内容类型。您可以像这样添加内容类型:response.Headers.Add("ContentType", "video/mp4")。或者你可以阅读链接:stackoverflow.com/questions/16736439/…
-
这个问题与 Web Api 完全无关。该文件的添加方式与您尝试添加它的方式相同。文件的进一步下载是通过任何其他应用程序外部的直接链接完成的。
-
可能和缓存有关,可以使用隐身窗口再次测试。您也可以将Azure storage exploer 用于检查blob 属性。
标签: azure mime-types content-type azure-blob-storage azure-management-api