【发布时间】:2016-04-26 08:50:16
【问题描述】:
目前我正在生成经过身份验证的 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>
并将其附加到存储桶文件路径以使其成为预签名请求。
【问题讨论】:
-
S3 API 文档在名为 Authenticating Requests: Using Query Parameters 的部分中解释了所有这些参数以及如何填充它们。使用本文档,可以在不使用 SDK 代码的情况下为 S3 创建预签名 URL。
标签: php amazon-web-services amazon-s3 pre-signed-url