如何通过 PHP SDK 在 Amazon S3 存储桶下创建文件夹?
Posted
技术标签:
【中文标题】如何通过 PHP SDK 在 Amazon S3 存储桶下创建文件夹?【英文标题】:How to create folder under Amazon S3 bucket through PHP SDK? 【发布时间】:2012-08-30 18:41:48 【问题描述】:我正在开发一个 iPhone 应用程序以允许用户上传照片和分享。我想使用 S3 来存储上传的图像以及处理后的图像(例如,缩略图、缩小尺寸的图像)。我已经在我的 EC2 实例上安装了 AWS php SDK,我的问题是: 1)从iPhone应用上传的照片应该先去EC2目录,然后复制到S3存储桶,还是应该直接上传到S3? 2) 如何通过PHP SDK在S3 bucket下创建不同的文件夹,以及如何从文件夹中读取文件?
提前致谢!
【问题讨论】:
【参考方案1】:是的,可以使用s3
sdk创建新文件夹。
试试下面的代码
<?php
/* abc is the folder name */
$s3->putObject(array(
'Bucket' => $bucket,
'Key' => "abc/",
'Body' => "",
'ACL' => 'public-read'
));
【讨论】:
【参考方案2】:可以在这里找到答案: Direct upload to s3 without the use of a production server
我从未使用过 PHP SDK,但我正在浏览 AWS SDK for PHP 1.5.14 documentation 并遇到了您需要使用的以下 API:
a) create_object :您将使用它来将对象放入存储桶中。您将指定文件名。您询问如何创建不同的文件夹:您将在文件名中包含完整路径。例如,不要将文件命名为“photo1.jpg”,而是将其命名为“user1/vacation/photo1.jpg”。
b) get_object_list :此 API 将返回给您一个给定条件的对象列表。如果要读取特定文件夹中的所有对象,请将前缀指定为文件夹的路径。例如,如果我想查找文件夹“user1/vacation/”中的所有文件,我会将前缀指定为“user1/vacation/”。
【讨论】:
以上是关于如何通过 PHP SDK 在 Amazon S3 存储桶下创建文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
Amazon S3 设置元数据使用 AWS SDK PHP v2 upload() 失败
使用 AWS SDK for PHP 上传的 Amazon S3 文件总是“application/octet-stream”?