【问题标题】:Upload to AWS S3 'folder' inside bucket with PHP使用 PHP 上传到存储桶内的 AWS S3“文件夹”
【发布时间】:2018-05-22 14:01:40
【问题描述】:

抱歉,我不是 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';
    }  
?>

【问题讨论】:

  • 嗨@omega,我可以从哪里获得S3.php 文件来运行这个脚本?您是否使用任何 aws 库在 AWS S3 存储桶上上传?

标签: php amazon-s3


【解决方案1】:
$actual_image_name = 'newfolder/test_image.png';

S3 将其称为 bucket 中的 key。密钥可以包含斜杠,当使用适当的客户端查看时,斜杠将被视为文件夹。但是在处理 S3 API 或 URL 时,“文件夹”的概念并不重要,因此它只是带有斜杠的“键”。

【讨论】:

  • 这么简单?我确定我应该尝试过:-/非常感谢先生!将标记为答案。
猜你喜欢
  • 2020-03-17
  • 2018-02-16
  • 2018-04-25
  • 2012-06-05
  • 2012-05-28
  • 1970-01-01
  • 2020-10-10
  • 2018-08-13
  • 1970-01-01
相关资源
最近更新 更多