3

現在、認証済み 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();

を使用せずに、認証済み URL でクエリ パラメータを自分で生成する方法はありますかcreatePresignedRequest

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

?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>

それをバケットファイルパスに追加して、署名付きリクエストにします。

4

1 に答える 1

0

「認証済み URL のクエリ パラメータを自分で生成する」という意味が正確にはわかりません。AWS はOpenSSLを使用して、署名の生成と署名付き URL の構築を処理します。

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

S3Client なしで PHP を使用して、PHP OpenSSL 拡張機能openssl_*関数を使用して署名付き URL を生成することもできます。

于 2016-04-26T09:22:46.190 に答える