php - 在 PHP 中使用 md5 验证 S3 上传是否成功

标签 php amazon-s3 md5

我正在将文件上传到 S3,没有出现如下错误:

    $s3 = new Aws\S3\S3Client([
        "version" => "latest",
        "region" => $region
    ]);

    $result = $s3->putObject([
        "Bucket" => $bucket,
        "Key" => $key,
        "SourceFile" => $image,
        "ACL" => "public-read"
    ]);

我读过有关 Etags 和 ContentMD5 header 的内容,但我似乎无法将它们全部放在 PHP 中。

如何知道文件内容是否正确?

最佳答案

使用 ContentSHA256 key 使其正常工作:

    $sha256 = hash_file("sha256", $image);
    $result = $s3->putObject([
        "Bucket" => getenv("S3_BUCKET_NAME"),
        "Key" => $key,
        "SourceFile" => $image,
        "ACL" => "public-read",
        "ContentSHA256" => $sha256
    ]);

如果 SHA 不匹配,我会收到 S3 异常,这正是我想要的。

关于php - 在 PHP 中使用 md5 验证 S3 上传是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37588739/

相关文章:

php - zend框架: wait for query to finish before starting another

javascript - 将使用 jquery add_function 创建的多个输入数据插入到 mysql 中

当脚本运行超过30分钟时,PHP脚本更新数据库中的记录

java - 如何配置此 Spring-Boot 应用程序以使用 IAM 角色而不是 key 和 secret ?

java - java .class 文件在不同编译器、版本、依赖项之间的差异是什么?

php - 如何将结构化文本文件转换为 PHP 多维数组

ios - AWS iOS 开发工具包 TLS 支持

python - 如何从 Amazon S3 下载上个月创建的文件夹中的所有文件?

hash - 根据文件内容计算出的MD5哈希值的前4个字节发生冲突的可能性是多少?

java - 从哈希中查找消息?