【发布时间】:2019-11-10 09:35:47
【问题描述】:
我正在使用 PHP 和 AWS SDK v3 开发一个项目,我必须通过传递文件名来检查文件是否已经存在。
这是我尝试过的:
来自 HTML 模板:
<html>
<form id="form" action="check_existing.php" method="post">
<input type="text" name="fName" >
<input type="submit" name="submit" value="Submit"><br />
</form>
</html>
来自 check_existing.php:
include 'create_client.php';
if(isset($_POST["submit"])){
$filename = $_POST['fName'];
$info = $s3->doesObjectExist($bucketName, $filename);
print($info);
if ($info)
{
echo 'File exists';
}
else
{
echo 'File does not exists';
}
}
这是我创建s3 客户端的方式:
$s3 = new Aws\S3\S3Client([
'region' => $region,
'version' => 'latest',
'credentials' => [
'key' => $IAM_KEY,
'secret' => $IAM_SECRET,
],
]);
问题:它总是返回
File does not exists
【问题讨论】:
-
对我来说看起来是正确的。我会验证
$s3是否已正确创建 (print_r($s3);) 并仔细检查$bucketName和$filename值并确保它们是正确的。 -
print_r($s3);正确给出响应,这意味着客户端正在工作。我还仔细检查了存储桶和文件名。 -
$region 可以吗?您可以在dashboard 中查看每个桶的区域
标签: php amazon-web-services amazon-s3 aws-php-sdk