0

署名付き URL からアクセスしようとしているファイルにアクセスできません。

    $cmd = $s3Client->getCommand('GetObject', [
            'Bucket' => 'test-bucket-pcloud',
            'Key'    => 'testfile.txt'
    ]);

    $request = $s3Client->createPresignedRequest($cmd, '+20 minutes');

    // Get the actual presigned-url
    $presignedUrl = (string) $request->getUri();

ブラウザで URL にアクセスすると、次のようになります。

This XML file does not appear to have any style information associated with it. The document tree is shown below.
    <Error>
    <Code>AuthorizationQueryParametersError</Code>
    <Message>X-Amz-Algorithm only supports "AWS4-HMAC-SHA256"</Message>
    <RequestId>8D109D39C69E665D</RequestId>
    <HostId>
    lH+u+MEnbF+Sps0kd/tMEGS0ePHjQlUDGWN8lLnzkXYkrIb0YksK6ahzUflPFMbQG8zUzLFl9y4=
    </HostId>
    </Error>

その理由は何ですか?また、次のように取得した URL からバケットにアクセスしようとすると、次のようになります。

$signedURL = $s3Client->getObjectUrl('test-bucket-pcloud','testfile.txt');

それでも同じエラーが発生します。

バケットのアクセス許可のスナップショットは次のとおりです。

ここに画像の説明を入力

4

1 に答える 1

0

CORS構成を確認しましたか?

https://aws.amazon.com/blogs/aws/amazon-s3-cross-origin-resource-sharing/

一般的な CORS 構成では、オリジン、メソッド、およびヘッダーを許可できます。まず、CORS 構成を追加します。

于 2016-02-03T16:37:10.393 に答える