AWSSDK S3 - if_object_exists在文件存在时保持返回false

时间:2013-04-12 19:41:28

标签: 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会不断变回错误,是否有我遗漏的内容?

2 个答案:

答案 0 :(得分:1)

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

$s3->enable_debug_mode(true);

这会打开CURL_VERBOSE输出,您应该能够在执行代码时查看实际的HTTP请求和响应。这应该可以帮助你弄清楚可能出现的问题。在此之后,如果结果您认为存在错误,则可以在https://github.com/amazonwebservices/aws-sdk-for-php/issues为GitHub上的SDK提交问题。

答案 1 :(得分:1)

在这里和那里搞乱了代码后,我查看了我之前创建的其他网站的一些S3调用,并比较了这些调用的完成情况。我注意到我以前的代码我没有使用以下代码:

$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);

这最终起作用了。但是,我不知道为什么这适用于amazon提供的示例。