php - 使用 PHP 上传到存储桶内的 AWS S3 'folder'

标签 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';
    }  
?>

最佳答案

$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/

相关文章:

php - 在 Laravel 中,如何获取 *only* POST 参数?

php - 来自 html 表的 mysql 帖子

git - 在 github 推送上将静态站点部署到 s3 的最佳策略?

node.js - 使用 Node.JS 列出所有目录和所有文件并将它们上传到我的存储桶(S3 Amazon)

php - 在 laravel Controller 中处理从 mysql 存储过程接收的数组

php - SQL 最近日期

php - Drupal 8.8.5 上奇怪的文件/文件夹权限错误

amazon-web-services - AWS S3 存储桶策略允许从我的实例进行只读访问

java - 通过 Retrofit 从 Android 向 Spring 发送图像文件

javascript - 将文件上传到 S3(法兰克福)时出现错误授权 AWS4-HMAC-SHA256