我是AWS S3 Service的新手,并且正在开发像Dropbox这样的项目。现在我想用PHP存储S3中的所有图像,目前,我使用S3预先指定的URL到PUT Image。现在我想向用户显示图像。我找到了两种方法:
我希望像永久URL一样查看图像,但不显示S3 Bucket中的图像路径。例如,目前URL的结构如下:
domain.com ///
但我想要这样的事情:
domain.com/ 某些代码就像是从s3存储桶目录中获取图像的指针。请给我一个提示。
提前致谢
答案 0 :(得分:1)
您可以使用此脚本作为代理,使用php curl从S3获取图像。
$bucket = 'bucketname';
$filename = 'somefile.jpg';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://s3-<region>.amazonaws.com/' . $bucket . '/' . $filename);
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$data = curl_exec($ch);
curl_close($ch);
header("Content-Length: " . strlen($data));
echo $data;
例如,与.htaccess RewriteRule
合并,然后您的s3存储桶网址被隐藏,只需获取此网址http://example.com/resources/images/somefile.jpg
RewriteRule ^resources/images/([^/]+)$ /proxy.php?filename=$1 [QSA,L]