【问题标题】:Where to save/extract files on Azure Web Sites?在 Azure 网站上的何处保存/提取文件?
【发布时间】:2014-01-04 02:26:22
【问题描述】:

我有一个用于对我们的数据运行单元测试的 Web 应用程序,我想将其部署为 Azure 网站。
问题出在这个应用程序中我正在下载相当大的 zip 文件,将它们解压缩(约 50MB,里面有 500 个文件)并对这些文件进行一些测试
我应该将这些大文件保存在 Azure 网站上的什么位置,应该在哪里提取它们?在本地主机上,我一直在使用“Path.GetTempPath()”,但 Azure 网站报告此文件夹中没有空间,即使我的 Azure 站点总共有 1000MB 和大约 990MB 可用空间。
有什么办法可以将这 1000MB 用于我的文件操作?
如果无法做到这一点,我应该使用 Azure Blob 存储来存储提取的文件吗?

【问题讨论】:

  • 是的,您可以使用 blob 容器
  • @Overmachine 当程序需要磁盘上的文件时,很难使用 blob 容器和 zip 提取程序。当您使用适用于流的 zip 库时,情况就不同了。
  • 看来Path.GetTempPath()指向C:\DWASFiles\Sites\{site_name}\Temp\ on Azure web sites

标签: c# asp.net azure azure-web-app-service


【解决方案1】:

如果是网站,并且当您的存储要求符合提供的本地存储的限制时,您当然可以使用本地存储。

但是,Path.GetTempPath() 不是 Azure 网站的最佳选择。我想说您应该将所有文件放在一个文件夹中,该文件夹是您的网络应用程序根文件夹的一部分,即Server.MapPath("~/tmp/")。确保首先检查文件夹是否存在等。在那里您可以利用您拥有的所有存储空间。

至于 Blob - 您必须分别解压缩每个文件并将其单独上传到 Blob。当您必须处理这些文件时,您必须再次下载它们。我不认为这是真正的解决方案,只要您有足够的本地存储空间即可使用。

【讨论】:

  • 感谢 Server.MapPath("~/tmp/") 提示,它有效!
  • Azure 网站上有多少本地存储可用?
  • 可以证明 MultipartMemoryStreamProvider 是更好的选择吗?什么文件大小对于内存流来说太大了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 2010-09-18
  • 2019-03-24
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多