2015-01-29 3 views
0

나는이 같은 S3 PHP SDK와 presigned 요청을 생성하는 것을 시도하고있다 :아마존 S3 PHP SDK presigned 요청

$s3Client = Aws\S3\S3Client::factory([ 
    'credentials' => new Aws\Common\Credentials\Credentials('my-access-code', 'xxx') 
]); 

$command = $s3Client->getCommand('GetObject', [ 
    'Bucket' => 'my-bucket-name', 
    'Key' => 'awesome-cat-image.png', 
]); 

$signedUrl = $command->createPresignedUrl('+10 minutes'); 

을하지만 고토 I 오류가 발생하는 URL이 말하는 :

<Error> 
    <Code>SignatureDoesNotMatch</Code> 
    <Message> 
     The request signature we calculated does not match the signature you provided. Check your key and signing method. 
    </Message> 
    <AWSAccessKeyId>xxx</AWSAccessKeyId> 
    <StringToSign>GET 1422564095 /my-bucket-name/awesome-cat-image.png</StringToSign> 
    <SignatureProvided>xxx</SignatureProvided> 
    <StringToSignBytes> 
     xxx 
    </StringToSignBytes> 
    <RequestId>xxx</RequestId> 
    <HostId> 
     xxx 
    </HostId> 
</Error> 

https://my-bucket-name.s3.amazonaws.com/awesome-cat-image.png에 액세스하는 것은 인증되지 않은 사용자를 허용하도록 설정된 사용 권한으로 올바르게 작동합니다.

+0

이'url'를 구축 할 수있는 두 번째 방법을 시도를 찾을 수 있습니까? 그렇다면 동일한 결과를 얻었습니까? http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.S3.S3Client.html#_createPresignedUrl – cmorrissey

답변