【发布时间】:2019-11-30 15:17:27
【问题描述】:
我正在使用适用于 PHP 的 aws s3 sdk,您可以在其中轻松生成这样的预签名 URI:
$cmd = $my_S3Client->getCommand(
'GetObject', [
'Bucket' => 'my_bucket',
'Key' => 'a_file.txt']);
$a_presigned_uri = $my_S3Client
->createPresignedRequest($cmd, $lifespan);
->getUri();
而且这个 URI 只能通过 GET 来查询。
现在,如果我想创建一个可通过 HEAD 请求查询的预签名 URI,我只需要编写相同的代码,但替换
->getCommand('GetObject', [...])
与
->getCommand('HeadObject', [...])
这两种方法都可以完美运行。
但我希望能够生成一个预签名的 URI,我们可以在该 URI 上请求 GET 或 HEAD 请求。而且我不知道该怎么做。
(注意:所有这一切的目的是,我的客户可以在 URI 上执行 HEAD,以便在尝试下载文件之前知道文件的大小。因此,如果有可能生成预签名带有'GetObject' 的 URI,然后是一种让用户只从这个预签名的 URI 中检索文件大小的方法,我也很感激这个答案。)
【问题讨论】:
标签: php amazon-s3 aws-sdk pre-signed-url