我正在使用 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/