将对象放入Amazon s3/PHP目录中

Fab*_*lio 16 php amazon-s3 amazon-web-services

我需要将我的文件上传到我在亚马逊s3存储上创建的特定目录中.我总是将文件上传到我的桶的"绝对路径"上,这样做:

$s3->putObject(array(
            'Bucket' => $bucket,
            'ContentType'   => $mime,
            'Key'           => $localImage,
            'ACL'           => 'public-read',
            'SourceFile'    => $localImage,
            'CacheControl'  => 'max-age=172800',
            "Expires"       => gmdate("D, d M Y H:i:s T", strtotime("+5 years")),
            'Metadata'      => array(
                'profile' => $localImage,
            ),
        )); 
Run Code Online (Sandbox Code Playgroud)

如何定义此文件应在给定目录上的上传位置?

Jer*_*lom 39

您必须在"密钥"参数中包含该信息.S3实际上不是一个文件系统,它更像是一个大(哈希表)关联数组."Bucket"是哈希表的名称,"Key"是键(例如$bucket[$key] = $content).因此,所有路径/目录信息必须是"密钥"的一部分.

$localImage = '/Users/jim/Photos/summer-vacation/DP00342654.jpg';
$s3->putObject(array(
    'Bucket'     => 'my-uniquely-named-bucket',
    'SourceFile' => $localImage,
    'Key'        => 'photos/summer/' . basename($localImage)
));
Run Code Online (Sandbox Code Playgroud)