0

我正在开发包含一些文章的 ASP.NET MVC 网站。每个用户都可以根据自己的意愿创建任意数量的文章——这完全没有问题。我让用户能够上传与那篇文章相关的图片(最多 N 张图片),这没有问题。

我的问题是,由于该站点将包含许多图像,我希望将图像存储部分存储到几个硬盘上。我有两个硬盘驱动器的专用服务器,我希望能够将图像保存在 D:\ 而不是本地 C:\ 文件夹中。此外,看起来,我需要为该站点添加另一台服务器,因此我希望能够将图像存储在可由同一个 Web 应用程序访问的不同服务器上。

我现在的代码很简单:我只是Server.MapPath("~/Content/uploads/" + article.ArticleIdentifier)用作文件夹容器,然后存储相关图像。

使用相同的 Web 应用程序共享少数高清或服务器中存储的图像的推荐方法是什么?

4

1 回答 1

1

最安全的方法是在 IIS 中创建一个存储文件的虚拟目录。虚拟目录可以指向 IIS 支持的任何位置(物理、UNC 等),因此您拥有最大的灵活性,并且就安全问题而言,即使文件在另一台服务器上,您也可以上传和管理文件不会遇到应用程序权限提升问题 - 您仍然需要确保适当的用户具有读/写权限。

在 IIS 中创建虚拟目录

在 C# 中访问虚拟目录:

已弃用的 APIServer.MapPath("~/VirtualDir/");

当前 APIHostingEnvironment.MapPath("~/VirtualDir/");

于 2013-01-31T22:33:57.983 回答