AmazonS3PHP流包装器为图像设置公共视图权限


Amazon S3 PHP Stream Wrapper Set Public View Permissions for Image

我正在使用AmazonPHP SDK for S3将图像保存到bucket中。我需要确保添加的每个图像都是可公开查看的,但我不想添加列表可访问性。我找不到一种方法将其设置在bucket级别,以便将其传播到所有上传的图像。

所以,我的问题是,在我将图像移动到S3后,如何设置图像的权限,以便在浏览器中查看它?

我的代码如下:

require_once("aws/aws-autoloader.php");
// Amazon S3
use Aws'S3'S3Client;
// Create an Amazon S3 client object
$s3Client = S3Client::factory(array(
    'key'    => $amazonKey,
    'secret' => $amazonSecret
));
// Register the stream wrapper from a client object
$s3Client->registerStreamWrapper();
// Save Thumbnail
$s3Path = "s3://".$amazonBucket."/".$folderYear."/".$folderMonth."/";
$s3Stream = fopen($s3Path . $thumbnail, 'w');
fwrite($s3Stream,$thumb_content);
@fclose($s3Stream);

我只需要在图像保存后得到帮助,我如何确保图像是公开的,但bucket和文件夹并没有列出所有内容。

您可以使用bucket策略在bucket级别进行设置。结账:

http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucketPolicies.html