Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何生成允许多个HTTP方法(此处:GET和HEAD)的预签名URI?_Php_Amazon S3_Aws Sdk_Pre Signed Url - Fatal编程技术网

Php 如何生成允许多个HTTP方法(此处:GET和HEAD)的预签名URI?

Php 如何生成允许多个HTTP方法(此处:GET和HEAD)的预签名URI?,php,amazon-s3,aws-sdk,pre-signed-url,Php,Amazon S3,Aws Sdk,Pre Signed Url,我使用的是aws s3 sdk for PHP,您可以在其中轻松生成预签名URI,如下所示: $cmd = $my_S3Client->getCommand( 'GetObject', [ 'Bucket' => 'my_bucket', 'Key' => 'a_file.txt']); $a_presigned_uri = $my_S3Client ->createPresignedRequest($cmd, $lifes

我使用的是aws s3 sdk for PHP,您可以在其中轻松生成预签名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', [...])

这两种方法都非常有效

但我希望能够生成一个预先签名的URI,我们可以在上面请求GET或HEAD请求。我不知道该怎么做


(注意:所有这一切的目的是,我的客户可以在URI上做一个头部,以便在他尝试下载之前知道文件的大小。因此,如果有可能使用
'GetObject'
生成一个预签名的URI,然后让用户只从这个预签名的URI中检索文件的大小,我也很感激。)答案。)

目前,您只能为一个对象和一个客户端方法生成预签名URL。这可能会在将来更改,但谁知道何时更改。

目前,您只能为一个对象和一个客户端方法生成预签名URL。这可能会在将来更改,但谁知道何时更改

->getCommand('HeadObject', [...])