2016-04-26 9 views
1

現在、私のように認証されたURLを生成しています:予約URLクエリパラメータを個別に作成するにはどうすればよいですか?

$this->s3Client = new S3Client($this->options); 
$cmd = $this->s3Client->getCommand('GetObject', [ 
    'Bucket' => $bucket_name, 
    'Key' => $object_key 
]); 
$request = $this->s3Client->createPresignedRequest($cmd, PRESIGNED_URL_VALIDITY); 
$presignedUrl = (string) $request->getUri(); 

は私がcreatePresignedRequestを使用して独自のANないで認証URLのクエリパラメータを生成することができます方法はあります。

私が個別に作成する必要があります。

?X-Amz-Algorithm=AWS4-HMAC-SHA256 
&X-Amz-Credential= 
&X-Amz-Date=20130721T201207Z 
&X-Amz-Expires=86400 
&X-Amz-SignedHeaders=host 
&X-Amz-Signature=<signature-value> 

とpresigned要求にそれを作るためにバケツファイルパスに追加して。

+1

S3 APIのドキュメントでは、[要求の認証:クエリパラメータの使用]セクション(http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4)で、これらのパラメータとその設定方法について説明しています。 -query-string-auth.html)。このドキュメントを使用すると、SDKコードを使用せずにS3用に事前に署名されたURLを作成することができます。 –

答えて

0

"自分で認証されたURLにクエリパラメータを生成する"ということは、私には分かりません。 AWSはOpenSSLを使用して署名の生成と署名付きURLの作成を処理します。

PHPを使用しない完全に署名付きURLを作成することができます。 Linuxのコマンドラインでopensslコマンドを使用します。 bashの例を確認してください:https://github.com/gdbtek/aws-tools/blob/master/sign_s3_url.bash

また、S3Clientを使用せずにPHPを使用して、PHP OpenSSL extensionを使用して符号付きURLを生成し、openssl_*機能を利用することもできます。

+0

私は、たとえば「2日間」続くURLを作成することができますか? –

+0

PHP SDKのS3Clientを使用して達成できないことを達成しようとしていますか? – marekful

+0

私は 's3ファイルURL'を持っています。私はそれをpresigned URLに変換したい。 –

関連する問題