asp.net - 请建议一种在 Windows Azure 中存储临时文件的方法

标签 asp.net azure temporary-files

这里,我在 Azure 上托管的 ASP.NET MVC3 上有一个简单的功能。

  • 第一步:用户上传图片
  • 第二步:用户裁剪上传的图片
  • 第三:系统保存裁剪后的图片,删除上传的原始图片临时文件

这是我现在面临的问题:临时文件存储在哪里?

我在某个地方的 Windows 系统或 LocalResources 上尝试过:问题是这些资源是每个实例的,因此这里不能保证实例上显示要裁剪的图片的代码与保存了该实例的同一实例上的代码相同临时文件。

您对这个临时文件问题有什么想法吗?

  1. 通常该文件在删除之前只会存在一段时间
  2. 临时文件需要独立于实例
  3. 更好的是,文件可以有一些过期设置(例如 1H)来删除自身,以防代码在某个地方崩溃。

最佳答案

好的。所以你所追求的基本上是共享存储但过期的东西。 Amazon 刚刚宣布了一个相当不错的设置,称为对象过期 (https://forums.aws.amazon.com/ann.jspa?annID=1303)。不幸的是,Windows Azure 存储还没有类似的情况,但这并不意味着我们不能想出其他方法;甚至确实提出了更好(更具成本效益)的方法。

您说它需要与实例无关,这意味着使用本地临时驱动器是不可能的。正如其他人所说,我最初倾向于 Blob 存储,但您将在那里进行清理工作。如果您正在处理大图像(>1MB)或低吞吐量(<100rps),那么我认为 Blob 存储是唯一的选择。如果您正在处理较小的图像和高吞吐量,那么 blob 存储的交易成本将开始真正增加(我很快就会发布一份白皮书,其中显示了对此的一些建模,但下面是一些快速的想法)。

对于小图像和高吞吐量的场景,更好的选择可能是使用 Windows Azure 缓存作为临时存储区域。乍一看它会贵得令人眼花缭乱;按每 GB 计算(缓存 110 GB/月,存储 12c/GB)。但是,使用存储时,您的交易需要付费,而使用缓存时,交易是“免费”的。 (配额在这里:http://msdn.microsoft.com/en-us/library/hh697522.aspx#C_BKMK_FAQ8)这确实可以加起来;例如使用 100kb 临时文件保存 20 分钟,系统吞吐量为 1500rps,使用缓存的费用约为每月 1000 美元,而存储事务每月费用为 15000 美元。

Azure 缓存方法非常值得考虑,但是,为了确保它是我真正想知道的“最佳”方法;

  1. 图像大小
  2. 每小时吞吐量
  3. 有关裁剪过程中客户端与服务器实际交互的更多详细信息?这是一个交互式过程,用户将图像拉入浏览器并进行视觉裁剪?或者只是简单的裁剪?

关于asp.net - 请建议一种在 Windows Azure 中存储临时文件的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8764539/

相关文章:

c# - 将 AntiCSRF 与 ajax 结合使用

PHP:清除 cron 临时文件的好脚本?

linux - 在 Linux 上设置 tmpfile() 的目录

c# - Unity3d 错误 CS2011 : Error opening response file (incorrect temp folder)

.net 4 中的 ASP.NET Web 服务应用程序

c# - 使用 MachineKey 的加密不是持久的

c# - @Html.HiddenFor 是从我的 View 中重新发布显示数据的正确方法

Azure 媒体播放器 - 缓存控制

azure - kubectl : net/http: TLS handshake timeout

azure API管理: is there a way to get the operation name in the inbound policy