【Azure 环境】存储在Azure上的文件,使用IE/Edge时自动打开的问题,如何变为下载而非自动打开
问题描述
存储,作为云服务最重要的一部分。当需要从云存储中下载文件时,时常面临一些格式的文件被浏览器自动打开而非下载,那如何来解决这个问题呢?
在Azure中,存储的服务有以下方式:
- Azure Blob:适用于文本和二进制数据的可大规模缩放的对象存储。 还包括通过 Data Lake Storage Gen2 支持大数据分析。
- Azure 文件:适用于云或本地部署的托管文件共享。
- Azure 队列:用于在应用程序组件之间进行可靠的消息传送的消息存储。
- Azure 表:一种 NoSQL 存储,适合用作结构化数据的无架构存储。
- Azure 磁盘:Azure VM 的块级存储卷。
多数情况中,会使用Blob来作为文件存储。所以此处以Blob为例来讨论如何解决文件下载而非打开的问题
问题原因
当通过Azure的门户,代码,及Azure Storage Explorer工具进行上传的文件,如文件为word文档,压缩文件,通过URL是可以直接进行下载的,但是TXT文件格式通过URL下载时会被直接打开,是因为文件类型为txt上传后,Content-type是text/plain,这种格式会被浏览器直接解析,不会被以文件形式下载。
解决方案
通过修改blob的属性来达到下载的目的。由于门户无法修改,所以需要使用storage explorer来操作(下载地址: https://azure.microsoft.com/zh-cn/features/storage-explorer/)
- 更改文件的ContentType为 application/octet-stream
- 更改文件的ContentDisposition为 attachment
参考资料:
核心 Azure 存储服务简介: https://docs.azure.cn/zh-cn/storage/common/storage-introduction?toc=%2fstorage%2fblobs%2ftoc.json
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!