上传到AWS S3'文件夹'用PHP内部桶

时间:2018-05-22 14:01:40

标签: php amazon-s3

道歉,我不是AWS用户。我需要将文件上传到'文件夹'在AWS S3中的现有存储桶中。我知道没有'文件夹的概念。在S3中,我如何指定'文件夹'它需要去吗?

我上传的图片需要遵循

的现有结构
https://s3.amazonaws.com/my.bucket.name/newfolder/test_image.png

我下面的代码有效,但它将图像放入根桶,而我需要将它放入一个新文件夹($ newfolder)。

有谁知道在下面的代码中我可以指定$ newfolder来实现这个目标?

谢谢。

<?php
$newfolder = "newfolder";
$bucket = 'my.bucket.name';
require_once('S3.php');

$awsAccessKey = 'MyAccessKey';
$awsSecretKey = 'MySecretKey';

$s3 = new S3($awsAccessKey, $awsSecretKey);
$s3->putBucket($bucket, S3::ACL_PUBLIC_READ);

$actual_image_name = 'test_image.png';

if($s3->putObjectFile('/var/www/html/test/image.png', $bucket , $actual_image_name, S3::ACL_PUBLIC_READ) )
    {
    $image='http://'.$bucket.'.s3.amazonaws.com/'.$actual_image_name;
    }
    else
    {
    echo 'error uploading to S3 Amazon';
    }  
?>

1 个答案:

答案 0 :(得分:1)

$actual_image_name = 'newfolder/test_image.png';

S3将其称为存储桶中的。密钥可以包含斜杠,当使用适当的客户端查看时,斜杠将被视为文件夹。但&#34;文件夹&#34;的概念;在处理S3 API和URL时并不重要,所以它只是&#34;键&#34;在其中加入斜杠。