将PHP file_get_contents流保存到AWS S3

时间:2017-01-11 04:27:19

标签: php amazon-web-services amazon-s3 aws-sdk

我尝试使用PHP获取远程文件(图像),然后将该图像放入S3 Bucket。

除了再次下载后上传到S3的文件为空时,它才能正常工作。

到目前为止,这是我的代码:

$src = "http://images.neventum.com/2016/83/thumb100x100/56f3fb1b9dbd6-acluvaq_63324840.png";
$name = md5(uniqid());
$ext = pathinfo($src, PATHINFO_EXTENSION);

$file_content = file_get_contents($src);
$filename = "{$name}.{$ext}";
  try {
     $file = $this->s3->putObject([
       'Bucket' => getEnv('s3bucket'),
       'Key' => $filename,
       'Body' => $file_content,
       'ACL' => 'private'
     ]);
  } catch (S3Exception $e) {
    //Catch 
  }

希望你能提供帮助。非常感谢你提前。

更新1:

问题不在于ACL(我已经使用“public”测试过),是S3上保存的对象没有正确上传(我认为与编码有关,但是无法解决它出)

1 个答案:

答案 0 :(得分:0)

将图像上传到S3存储桶后,它将是私有的,您无法直接下载。您需要提供公共读取权限才能使对象可供下载给用户。