好的,我的第一个 SO 问题,很好。
我在寻找这个问题的答案时遇到了问题。是的,我试过了 传输构造函数的选项没有提到任何 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!';
});
一切都上传正常,但文件不是公开阅读的 我在哪里/如何对在 VERSION 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 - 如何使用传输管理器在 AWS-SDK-PHP v3.2 上将 ACL 设置为公开读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31567862/