如何将Amazon S3上的图像404错误重定向到我自己的服务器

时间:2012-01-03 07:37:29

标签: codeigniter amazon-s3

是否可以将Amazon S3服务器上的404错误重定向到我自己的服务器?这是我网站上的案例:

用户上传了一个名为abc.jpg的文件。我有一组图像类型,例如裁剪或拇指。

当有人访问/img/abc.crop.jpg时,网络服务器会检查并查找文件/img/abc.crop.jpg。如果他们找到了,网络服务器将抛出该文件。

但是当程序找不到该文件时,这个.htaccess文件会将它路由到程序:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

所以它将转到index.php / img / abc.crop.jpg,其中“img”控制器/程序将查找abc.jpg并在img文件夹上生成一个名为abc.crop.jpg的文件。因此,下次另一个用户访问abc.crop.jpg时,程序不再需要重新生成文件。

现在,当我使用Amazon S3时,我必须逐个生成所有不同的尺寸(裁剪,拇指等)以避免404错误。上述技术的目的是节省空间。我希望流量与当前条件保持一致。任何人都知道如何操纵S3 404错误,以便他们将重定向到我的服务器? IE浏览器。 http://bucket.s3.amazonaws.com/img/abc.crop.jpg重定向到http://mysite.com/img/abc.crop.jpg

2 个答案:

答案 0 :(得分:0)

这是我确定404错误的解决方法。

  1. 启用S3网络服务
  2. 将错误文档配置为file-not-found.jpg
  3. $result = $s3->getObject(array( 'Bucket' => 'my bucket', 'Key' => 'path/to/file' ));
  4. 使用md5或crc32来确定返回的对象是否为file-not-found.jpg
  5. 重定向到您自己的服务器

答案 1 :(得分:-1)

如果您使用的是codeigniter,请查看保留的路由http://codeigniter.com/user_guide/general/routing.html。您可以为任何404错误指定特定的控制器。