我目前正在使用以下代码:
include 'lib/sdk.class.php';
$s3 = new AmazonS3();
$bucket = 'mybucket'.strtolower($s3->key);
$key = 'myfile.txt';
$response = $s3->if_object_exists($bucket,$key);
但是当文件存在时,$response
会不断变回错误,是否有我遗漏的内容?
答案 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提供的示例。