php - 使用 AWS api 检查 amazon s3 上是否存在对象

标签 php api amazon-web-services amazon-s3

我正在使用 AWS api,但在检查现有对象(文件夹)时遇到问题。
我经历了this问题,它对我没有帮助,因为我使用的是最新更新的 SDK。
我搜索了 SDK 并找到了 this这应该可以工作,即 doesObjectExist,但我无法在任何地方找到函数定义。我的 s3.php 文件没有此功能。 Here是我的 S3.php 类。
我还了解到 S3 不支持文件夹结构,但由于平面文件系统,它只是在视觉上让它看起来像是存储在一个文件夹中。现在,如果我必须在 S3 上搜索文件夹 1024x768,我是否只检查存储桶的根目录?我的意思是这样的

     $chkFileExist = $s3->doesObjectExist($bucketName,'1024x768');

我需要检查该文件夹是否存在,如果不存在,则使用 API 函数动态创建它。如果存在,请将文件存储在那里。
我需要帮助来实现此功能。请问有人能提出建议吗解决方案。
感谢您的关注。

最佳答案

您可能想多考虑一下整个“平面文件系统”。当我第一次开始编写 PHP 来与 S3 API 交互时,我希望能够遍历目录以及每个文件夹中的文件。但这不是它的工作原理!

这是 Ryan Parman 的回答,您提到的问题中的一个回答:

“S3 是一个平面文件系统。没有文件夹。只有带斜杠的文件名。一些 S3 浏览工具选择在其软件中显示“文件夹”的概念,但它们只是假装。

“/albums/Carcassonne-France/”返回 false,因为不存在具有该名称的单个对象。”

如果您的对象具有以下路径:

s3://myBucket/myFolder/taco.jpg

s3://myBucket/myFolder/jambox.jpg

如果您检查对象 s3://myBucket/myFolder/ 是否存在,它将返回 false,因为没有具有该特定名称的对象。

如果文件夹不存在,了解更多关于为什么要创建文件夹的信息可能会有所帮助,但是如果您想将对象放入 S3 的特定“文件夹”中,您可以只使用 putObject() 方法。

关于php - 使用 AWS api 检查 amazon s3 上是否存在对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17680816/

相关文章:

php - .htaccess——css 被停用

javascript - CodeIgniter:如何创建不刷新的菜单

php - Wordpress:使用 wp_insert_post() 填充自定义帖子类型字段

api - 从 WebJob 调用 Azure API/WebJob 和 Web api 之间的共享代码

postgresql - Amazon RDS SSL 证书的意外到期日期

php - WordPress的防止错误报告

ruby-on-rails - 带有 Rspec 测试的完整 rails json API 示例

api - RavenDB HTTP API 元数据所有文档

php - 如何使用 PHP AWS SDK 获取实例元数据?

amazon-web-services - AWS Redshift 脚本导出