Php AWS s3文件夹上载期间未应用ACL(上载目录)
由于某些原因,当我将文件夹上载到S3存储桶时,未应用公共读取。(即,公众无法访问文件) 文件上传正常,但都设置为私有。我想尽了一切办法。感觉我错过了一些基本的东西 正在使用此指南: 这是我的密码:Php AWS s3文件夹上载期间未应用ACL(上载目录),php,amazon-web-services,amazon-s3,Php,Amazon Web Services,Amazon S3,由于某些原因,当我将文件夹上载到S3存储桶时,未应用公共读取。(即,公众无法访问文件) 文件上传正常,但都设置为私有。我想尽了一切办法。感觉我错过了一些基本的东西 正在使用此指南: 这是我的密码: require '../vendor/autoload.php'; use Aws\S3\S3Client; $client = S3Client::factory(array( 'version' => '2006-03-01', 'r
require '../vendor/autoload.php';
use Aws\S3\S3Client;
$client = S3Client::factory(array(
'version' => '2006-03-01',
'region' => 'ap-southeast-2',
'credentials' => array(
'key' => 'MYKEY',
'secret' => 'MYSECRET',
)
));
$dir = 'assets';
$bucket = 'gittestbucket';
$keyPrefix = 'assets';
$options = array(
'params' => array('ACL' => 'public-read'),
'concurrency' => 20,
'debug' => true
);
$UploadAWS = $client->uploadDirectory($dir, $bucket, $keyPrefix, $options);
var_dump($UploadAWS);
我的IAM用户策略(还有一组列出所有存储桶的列表):
非常感谢您的帮助。干杯不久前,我一直在努力解决这个问题 尝试将您的上传语句更改为下面这一条
$UploadAWS = $client->uploadDirectory($dir, $bucket, $keyPrefix, array(
'concurrency' => 20,
'debug' => true,
'before' => function (\Aws\Command $command) {
$command['ACL'] = strpos($command['Key'], 'CONFIDENTIAL') === false
? 'public-read'
: 'private';
}
));
AWS的文档有时会令人震惊,因为它变化太大了谢谢!这很有效。不知道为什么他们的文档化示例不起作用。非常令人沮丧。
$UploadAWS = $client->uploadDirectory($dir, $bucket, $keyPrefix, array(
'concurrency' => 20,
'debug' => true,
'before' => function (\Aws\Command $command) {
$command['ACL'] = strpos($command['Key'], 'CONFIDENTIAL') === false
? 'public-read'
: 'private';
}
));