我尝试使用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上保存的对象没有正确上传(我认为与编码有关,但是无法解决它出)
答案 0 :(得分:0)
将图像上传到S3存储桶后,它将是私有的,您无法直接下载。您需要提供公共读取权限才能使对象可供下载给用户。