php - AWS PHP SDK v3 检查文件是否已存在于 S3 存储桶中
问题描述
我正在使用 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 = new S3($s3_accesskey, $s3_secretkey); //create s3 object
$info = $s3->getObjectInfo($s3_bucket, $filename); // $filename can be path of file in bucket
if ($info){
echo 'File exists';
}else{
echo 'File does not exists';
}
getObjectInfo() 返回信息如下
Array
(
[date] => 1596690179
[time] => 1596651169
[hash] => 1234c1234341a7f2565c108b23b4aaca
[type] => image/jpeg
[size] => 18968
)
推荐阅读
- c# - 路由表中的动态默认参数
- sql - 两个数据库 Sage300 和 ToolHound 之间的 sql 集成
- python - 如何更改 pandas resample 评估的时间段?
- mysql - 按日期删除表而不删除系统表的功能/过程
- colors - Visual Studio Code 更改代码段文本颜色
- dependency-injection - 在 Autofac 中共享依赖实例的正确方法是什么?
- php - 为什么我得到这个stdClass类的错误对象?
- amazon-web-services - 如何使用 AWS Powershell 工具获取入口规则中允许的安全组 ID?
- html5-canvas - Fabricjs中鼠标悬停对象时如何显示对象边界框?
- delphi - 删除元生成器 MSHTML