繁体   English   中英

AWS PHP SDK v3 检查文件是否已存在于 S3 存储桶中

[英]AWS PHP SDK v3 check if a file exists already in S3 bucket

我正在使用 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
)

你可以试试这个。 参考: 在此处输入链接描述

$s3 = new AmazonS3();
$bucket = 'your-bucket' . strtolower($s3->key);

$test = $s3->doesObjectExist($bucket, 'testfile.jpg');

// Success or not? (Boolean, not a CFResponse object)
var_dump($test); // it will return boolean

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM