使用PHP AWS SDK在file_put_contents上设置ACL

Cor*_*rey 4 php sdk amazon-s3 amazon-web-services

require 'vendor/autoload.php';

use Aws\S3\S3Client;

$client = S3Client::factory(array(
    'key'    => 'MY_KEY',
    'secret' => 'MY_SECRET'
));

// Register the stream wrapper from a client object
$client->registerStreamWrapper();

$data = $_POST["image_data"];

list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);

file_put_contents('s3://webcamapp/filename.png', $data);
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,花花公子,我看到我的图片上传到我的桶.但是我需要将ACL设置为public-read,因为我将此文件发送到S3,因为我将在我的网站上显示图像.我无法想出使用这种方法做到这一点的方法.想法?

Jer*_*lom 10

S3 Stream Wrapper通过流上下文支持S3的其他参数.尝试这样的事情:

$context = stream_context_create(array(
    's3' => array(
        'ACL' => 'public-read'
    )
));

file_put_contents('s3://webcamapp/filename.png', $data, 0, $context);
Run Code Online (Sandbox Code Playgroud)