如何使用AWS PHP SDK通过预签名请求检查S3文件是否存在
使用AWS PHP SDK生成预签名HeadObject请求检查S3文件存在性
你可以使用HeadObject命令替代GetObject来生成预签名请求,该命令仅获取对象的元数据而不会返回文件内容,更适合用来验证文件是否存在。
替换后的代码示例
$cmd = $s3->getCommand('HeadObject', [ 'Bucket' => 's3.test.bucket', 'Key' => $fileKey ]); // 生成有效期60分钟的预签名HEAD请求 $request = $s3->createPresignedRequest($cmd, '+60 minutes')->withMethod('HEAD'); return (string)$request->getUri();
使用说明
客户端拿到这个预签名URL后,发送HEAD请求即可根据响应状态码判断文件状态:
- 响应码为
200 OK:文件存在 - 响应码为
404 Not Found:文件不存在 - 响应码为
403 Forbidden:通常是预签名URL无效、权限不足等问题,需排查签名或权限配置
内容的提问来源于stack exchange,提问作者Klick
相关产品推荐
相关产品推荐

