好吧,我的第一个问题是,友好点。
我找不到这个问题的答案。是的,我试过了
传输构造函数的选项没有提到任何acl选项。
我在谷歌上的搜索要么是空白的,要么是2.x版的
这是我的密码
$options[] = [
'DEBUG' => true,
];
// Where the files will be transferred to
$dest = 's3://newbucket/'.$UUID;
// Create a transfer object.
$manager = new \Aws\S3\Transfer($s3, $path, $dest, $options );
// Perform the transfer synchronously.
$manager->transfer();
$promise = $manager->promise();
$promise->then(function () {
echo 'Done!';
});
所有文件都可以上传,但文件不是公开读取的
在何处/如何对3.2版中上载的文件设置公共读取
最佳答案
您可以将'before'
闭包添加到传递给传输管理器的选项数组中,该管理器可以处理权限分配。尝试用以下代码替换管理器实例化代码:
$manager = new \Aws\S3\Transfer($s3, $path, $dest, [
'before' => function (\Aws\CommandInterface $command) {
if (in_array($command->getName(), ['PutObject', 'CreateMultipartUpload'])) {
$command['ACL'] = 'public-read';
}
},
]);
关于php - 如何使用传输管理器将ACL设置为在AWS-SDK-PHP v3.2上公开读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31567862/