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

Kil*_*Bug 5 php api amazon-s3 amazon-web-services

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

     $chkFileExist = $s3->doesObjectExist($bucketName,'1024x768');
Run Code Online (Sandbox Code Playgroud)

我需要检查文件夹是否存在,如果不是动态使用API​​函数创建它.如果它存在,那么存储文件.
我需要帮助才能实现这一功能.任何人都可以根据自己的经验提出解决方案.
感谢您的关注.

Dan*_*Dan 5

您可能想要对整个"平面文件系统"进行更多考虑.当我第一次开始编写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()方法.