1

署名付きのアップロード URL を使用して、拡張子が .png (image/png) のファイルを正常にアップロードできます。ただし、拡張子 .mov の動画ファイルをアップロードするために同じことをしようとすると、Amazon S3 から 403 が返されます。contentType movie/mov、video/quicktime を使用してみましたが、すべて機能しません。ファイル名を .png と image/png に変更すると、動画ファイルが正しくアップロードされました。表示用に拡張子を変更する必要がありました... S3 署名付きファイルのアップロードでサポートされているファイルタイプのリストがあるかどうか、誰か知っていますか? ググっても詳細は出てこない…

私のs3バケットポリシー:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mytempbucket/*"
        }
    ]
}

編集: これは私の presignedurl を生成する方法です:

final GeneratePresignedUrlRequest generatePresignedUrlRequest = 
                    new GeneratePresignedUrlRequest(s3BucketName, objectKey);
            generatePresignedUrlRequest.setMethod(HttpMethod.PUT); 
            generatePresignedUrlRequest.setExpiration(expirationDate.toDate());
            generatePresignedUrlRequest.setContentType(contentType);

そのため、contentType 文字列をサーバーに渡して、署名付き URL を生成しました。

4

1 に答える 1

0

アップロード用の署名付き URL の署名は、いくつかのパラメーターから作成されます。そのうちの 1 つがContent-Typeヘッダーです。

サポートされているタイプの「リスト」はありませんがContent-Type、署名付き URL を生成するときに指定するものは、要求の実際の要求ヘッダーで指定するものと同じでなければなりませんPUT

コードを表示したり、署名付き URL を生成したり、アップロードを行ったりする方法について具体的に言及していないため、何が間違っているのかを具体的Content-Typeに推測することは困難ですが、署名と実際のアップロードでは、間違いなく機能しません。

エラー応答の応答本文を読むと、通常、失敗した要求の実際のプロパティに基づいて、「署名する文字列」がどうあるべきかを示すセクションがあります。これが署名の生成に使用したものと一致しない限り、そこにエラーがあります。

于 2015-12-26T19:59:34.973 に答える