Я знаю, что нет концепции папок в S3, она использует плоскую файловую структуру. Однако я просто использую термин «папка» для простоты.Сделать AWS s3 общедоступной, используя php
Предпосылки:
- An s3 ведро называется Foo
- Foo папки был обнародован с помощью консоли AWS Management
- Apache
- PHP 5
- Standard AWS SDK
Проблема:
Возможно загрузить папку с использованием SDK для PHP AWS. Тем не менее, папка тогда доступна только пользователю, который загрузил папку и не был общедоступным для чтения, как мне бы хотелось.
Процедура:
$sharedConfig = [
'region' => 'us-east-1',
'version' => 'latest',
'visibility' => 'public',
'credentials' => [
'key' => 'xxxxxx',
'secret' => 'xxxxxx',
],
];
// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk($sharedConfig);
// Create an Amazon S3 client using the shared configuration data.
$client = $sdk->createS3();
$client->uploadDirectory("foo", "bucket", "foo", array(
'params' => array('ACL' => 'public-read'),
'concurrency' => 20,
'debug' => true
));
успеха Критерии:
Я был бы в состоянии получить доступ к файлу в загруженном папке, используя "статический" ссылку. Fx:
https://s3.amazonaws.com/bucket/foo/001.jpg