Iis 将文件移动到AmazonS3,同时保留URL

Iis 将文件移动到AmazonS3,同时保留URL,iis,amazon-web-services,amazon-s3,Iis,Amazon Web Services,Amazon S3,我这里有点麻烦。我目前有一个由第三方托管提供商在共享托管环境中托管的网站。因此,我没有此网站所在的IIS服务器的root访问权限 我目前在网站上有一个目录,例如: mysite.com/myfiles “myfiles”目录中当前有很多文件。文件太多,使我无法在主机上分配磁盘空间。现在有几件事需要考虑: 主机没有更慷慨的计划让我们升级到。他们只愿意向我们收取(非常高的)超额费用 我们需要和东道主呆在一起,直到我们和他们的合同结束,这几乎是一年后的事了 我想把这个目录的内容放在AmazonS3上,

我这里有点麻烦。我目前有一个由第三方托管提供商在共享托管环境中托管的网站。因此,我没有此网站所在的IIS服务器的root访问权限

我目前在网站上有一个目录,例如:

mysite.com/myfiles

“myfiles”目录中当前有很多文件。文件太多,使我无法在主机上分配磁盘空间。现在有几件事需要考虑:

  • 主机没有更慷慨的计划让我们升级到。他们只愿意向我们收取(非常高的)超额费用

  • 我们需要和东道主呆在一起,直到我们和他们的合同结束,这几乎是一年后的事了

  • 我想把这个目录的内容放在AmazonS3上,这将缓解托管帐户的磁盘空间紧张。唯一的问题是文件的URL必须保持不变

    例如,如果一个外部网站链接到mysite.com/myfiles/image.jpg,我希望该网站上的图像能够顺利地继续工作


    有什么可能的方法来实现这一点吗?

    您可以通过查看Amazon S3的文档来找到您需要的信息。您可以自定义将用于访问S3文件的主机名,这可能有助于完成您需要执行的操作。

    我建议创建一个S3存储桶(可能还有一个位于其上的Cloudfront发行版),其中包含一个与现有站点相对应的文件夹布局(用于将来的迁移)。然后在您的DNS中创建一个CNAME条目,为您的bucket/distribution提供一个友好的名称(例如
    s3.my.domain

    然后将URL重写器添加到现有站点,转发
    http://my.domain/myfiles/xxx
    到匹配的S3 URL,例如“`”

    当您的托管合同完成时,更改DNS以将您的根目录和
    www
    条目指向存储桶/分发,或根据需要指向另一台主机

    我目前正在使用Cloudfront为我的一家公司在地理位置上缓存静态内容,效果非常好;迄今为止零停机时间(12个月以上约6次)



    2010年6月:Cloudfront表现出色,比之前的托管安排便宜得多。目前,我们每月只需120美元就可以处理250万个请求(约750GB)。

    第一个问题:为什么第三方网站必须有指向您网站的完整URL?他们为内容付费吗?如果他们不为内容付钱给你,你是否可以通过免费给他们内容而获得一些好处?这是一个商业决策,也许你会得出结论,支付超额费用来提供内容是值得的

    第二个问题:有多少URL实际上是从第三方网站链接的?您可以花时间保持这些URL可用,并将所有其他内容切换到S3托管。谷歌的“链接:”查询可以帮助回答这个问题

    所以,对于解决方案:如果您能够创建301重定向,那么第一个解决方案是有效的。只需为要移动的每个URL设置重定向

    第二种解决方案是反向代理,其中mysite.com上的URL映射到mysite.s3.amazon.com。我不确定这是否真的是一个好的解决方案;您将为代理文件的带宽付费。另外,如果您能够设置反向代理,则可以创建301重定向

    第三种解决方案:将您的站点整体移动,并将域名映射到S3(通过CNAME映射)。是的,你最终为一个你不再使用的托管服务付费。如果你使用动态内容,它将不起作用(但也许你会为S3每月支付30美元)


    最后,这不是一个解决方案,而是一条前进的道路:为其他静态内容使用不同的域名。该域名可以通过CNAME映射到Amazon bucket。

    移动文件并在目录上设置404处理程序。404处理程序可以透明地将301或302状态的客户端重定向到S3URL。使用url重写的其他建议可能不适用于任何非aspx文件,因为您在共享主机提供商上,并且它们通常不支持通配符ASP.NET映射。

    第三方网站必须具有指向该网站的完整url,因为有许多网站已链接回我们的网站,以及在他们的站点中嵌入实际图像(经我们许可),从我们的服务器请求实际图像。我们希望维护这些链接并防止这些图像中断。为什么?我想是为了体贴。第二个问题的答案是,我们无法知道所有这些外部URL引用的确切位置。我对谷歌“链接:”查询的范围和准确性不满意。