Php AWSSDK S3-当文件确实存在时,if_object_exists将继续返回false

Php AWSSDK S3-当文件确实存在时,if_object_exists将继续返回false,php,amazon-web-services,amazon-s3,file-exists,Php,Amazon Web Services,Amazon S3,File Exists,我目前正在使用以下代码: include 'lib/sdk.class.php'; $s3 = new AmazonS3(); $bucket = 'mybucket'.strtolower($s3->key); $key = 'myfile.txt'; $response = $s3->if_object_exists($bucket,$key); 但是当文件确实存在时,$response不断返回false,是否有我遗漏的内容?如果文件确实存在并且可以访问,则此函数应返回true

我目前正在使用以下代码:

include 'lib/sdk.class.php';
$s3 = new AmazonS3();
$bucket = 'mybucket'.strtolower($s3->key);
$key = 'myfile.txt';
$response = $s3->if_object_exists($bucket,$key);

但是当文件确实存在时,
$response
不断返回false,是否有我遗漏的内容?

如果文件确实存在并且可以访问,则此函数应返回true。我将尝试通过执行以下操作将SDK置于调试模式:

$s3->enable_debug_mode(true);
$bucket = 'mybucket'.strtolower($s3->key);

这将打开
CURL\u VERBOSE
输出,您应该能够在执行代码时查看实际的HTTP请求和响应。这将帮助您找出可能出现的问题。在此之后,如果您认为存在bug,您可以在GitHub上为SDK提交问题。

在到处乱搞代码之后,我查看了我以前从其他网站创建的一些S3调用,并比较了它们是如何完成的。我注意到在我以前的代码中,我没有使用以下代码:

$s3->enable_debug_mode(true);
$bucket = 'mybucket'.strtolower($s3->key);
相反,我使用了:

$bucket = 'mybucket';
最终的代码如下所示:

include 'lib/sdk.class.php';
$s3 = new AmazonS3();
$bucket = 'mybucket';
$key = 'myfile.txt';
$response = $s3->if_object_exists($bucket,$key);

这最终奏效了。但是,我不知道为什么与提供的示例相比,这个解决方案也适用于我,但我不知道为什么。