【发布时间】:2015-09-15 01:31:50
【问题描述】:
问题是本地目录包含子目录,每个子目录都有多个 zip 文件。我们无法更改系统外部的链接,但现在必须将它们重新路由到 S3。该应用程序基于 ASP.NET MVC 5 构建。
建议的解决方案(我正在尝试): 捕获 /directory/subdirectory/xyz.zip 的所有入站请求并将它们重定向到 MVC 控制器操作,以便从 S3 向它们发送正确的文件。
结构:
root/DIRECTORY/*subdirectories/*.zip
示例网址:
www.somewhere.com/Packages/{Guid}/{Guid}-IDENTIFIER.zip
添加了新的控制器包
添加了以下路线
routes.MapRoute(
"RedirectDownloads",
"{controller}/{key}/{zip}",
new { controller = "Packages", action = "Index"},
new
{
key = @"[{|\(]?[0-9a-fA-F]{8}[-]?([0-9a-fA-F]{4}[-]?){3}[0-9a-fA-F]{12}[\)|}]?",
zip = @"[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}\-.*\.zip"
}
);
由于这些是文件系统上的静态文件,这显然没有受到影响,所以我还在 .. 下尝试了以下操作。
<add name="Zips-ISAPI-Integrated-4.0" path="*.zip" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
但这会导致 IIS 抛出错误。
【问题讨论】:
标签: c# asp.net-mvc