天蓝色 blob 存储中的 XLSX 文件作为 zip 文件下载

Posted

技术标签:

【中文标题】天蓝色 blob 存储中的 XLSX 文件作为 zip 文件下载【英文标题】:XLSX files in azure blob storage get downloaded as zip files 【发布时间】:2021-07-02 16:14:52 【问题描述】:

我们的 Azure blob 存储中有一些文件 - 它们都是 xlsx 文件。 当我们通过 Azure 门户下载它们时(我们导航到存储帐户,然后导航到容器,然后选择一个文件并下载它)它会下载并保存为 zip 文件。

如果在下载后我们将其扩展名更改为 xlsx,则 Excel 将识别它并毫无问题地打开。但是,在下载时,有些东西迫使该扩展从 xlsx(我们在容器中看到)更改为 .zip。

当我们以编程方式(通过 c# 代码)访问文件或生成共享访问签名时,也会发生同样的情况。

它可能是什么以及如何解决它?

谢谢!

【问题讨论】:

无法重现此问题,您可以尝试在浏览器中下载复制并粘贴完整网址吗? 我也无法重现该问题。您上传的文件是否具有xlsx 扩展名? xlsx 文件实际上是 xml 文件的压缩目录,因此它们实际上是 zip 文件。他们的“幻数”(又名“文件签名”)是 zip 文件之一(50 4B 03 04 [PK])。所以“它可能是什么”->某处正在检查已知的幻数并且安全地不信任扩展。 “如何解决它” -> 找到这是什么东西,不幸的是,我对此一无所知。 【参考方案1】:

当使用 C# 以编程方式访问 xlsx 文件时,我的工作是手动添加专门针对 xlsx 文件类型的 mime 类型,因为它们给我带来了问题(pdf 和图片工作正常),PS,我将文件名存储在我的具有相应文件名的数据库。即

if (YourModel.FileName.EndsWith("xlsx"))
            
                return File(YourModel.FileData, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            

【讨论】:

以上是关于天蓝色 blob 存储中的 XLSX 文件作为 zip 文件下载的主要内容,如果未能解决你的问题,请参考以下文章

XLSX 从 blob 列到 Oracle 表

python将数据帧作为csv写入天蓝色存储帐户

如何将二进制数据作为图像写入 azure blob 存储 c#

使用ImageMagick压缩天蓝色blob中的图像

使用天蓝色存储中的 pyspark 进行计数检查

在 azure blob 子容器中从本地上传 zip