将具有不同文件名的CloudFront URL指向同一文件

时间:2015-03-25 05:52:39

标签: apache mod-rewrite amazon-web-services amazon-s3 amazon-cloudfront

我以下列格式存储在AWS S3中的文件

https://s3.amazon.com/0001/123465/cat.png
https://s3.amazon.com/0001/489887/dog.png
https://s3.amazon.com/account_id/unique_file_id/dog.png

前面还有一个CloundFront,因此URLS就像

https://df13d2as1fa1a3.cloudfront.net/0001/123465/cat.png

文件名" cat.png"记录在我们自己的数据库中。我们希望允许我们的用户在不影响现有网址的情况下重命名文件。例如,当cat.png重命名为cat_new.png时,(文件ID保持不变)

https://df13d2as1fa1a3.cloudfront.net/0001/123465/cat.png
and
https://df13d2as1fa1a3.cloudfront.net/0001/123465/cat_new.png

应该都可以工作并指向同一个文件。有没有办法让这项工作?

在我们迁移到AWS之前,文件URL指向PHP脚本,无论最后一个文件名是什么,它都会下载相同的内容。它仅在URL中查找帐户ID和文件ID。

1 个答案:

答案 0 :(得分:0)

不,您必须将文件复制到新位置。 S3支持网页重定向,但这不适合大规模使用,并且存储桶可能没有设置为网站存储桶。

您必须拥有一个执行数据库查找的“重定向”应用程序,并将301返回给实际文件。因为CDN缓存响应,所以不应该太过刻录(特别是如果你在重定向响应上设置了一个长TTL)

相关问题