抱歉,我不是 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';
}
?>
最佳答案
$actual_image_name = 'newfolder/test_image.png';
S3 将其称为 bucket 内的key。 key 可以包含斜线,当使用适当的客户端查看时,这些斜线将被视为文件夹。但是在处理 S3 API 或 URL 时,“文件夹”的概念并不重要,所以它只是带有斜杠的“键”。
关于php - 使用 PHP 上传到存储桶内的 AWS S3 'folder',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50469679/