3

これが私の Amazon S3 バケット ポリシーの外観です (一部、AWS Policy Generatorを使用して生成されます)。

{
  "Id": "Policy1350503700228",
  "Statement": [
    {
      "Sid": "Stmt1350503699292",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::files.example.com/*",
      "Condition": {
        "StringLike": {
          "aws:Referer": [
            "http://example.com/*",
            "http://www.example.com/*"
          ]
        }
      },
      "Principal": {
        "AWS": [
          "*"
        ]
      }
    }
  ]
}

バケット ポリシーが行うことになっているのは、バケット内のファイルが直接アクセスされた場合、または 以外のリファラーからアクセスされた場合、「403 Forbidden」エラーをスローすることです(www.)example.com

Chrome がこの方法で提供される PDF ファイルに問題があるように見えることを除いて、動作しているようです (たとえば、画像は問題なく読み込まれます)。したがって、files.example.com(リファラーベースの制限がある)からのPDFは、Chrome(Ubuntu 12.04の最新バージョン)で永久にロードされているようです。一方、Firefox は、サイズが 100KB 未満の PDF を瞬時に読み込みます。

私が何をしているのか/間違っている可能性があるかについて何か考えはありますか?

PS:右クリックして [名前を付けて保存] を選択すると、Chrome でファイルをダウンロードできます。表示されない理由がわかりません。

4

3 に答える 3

2

Chrome で開発されたツールを確認したところ、Chrome pdf プラグインが複数のチャンクで pdf を要求していることがわかりました。最初のチャンクには正しいリファラーがありますが、後続のすべてのチャンクにはhttps://s3.amazonaws.com/....代わりにhttp://mywebsite.com. バケット ポリシー リストに追加https://s3.amazonaws.com/*すると、問題は解決しました。

于 2013-08-03T18:22:11.937 に答える
0

この投稿で説明されているように、response-content-disposition を「attachment」に設定できます: https://stackoverflow.com/a/9099933/568383

于 2013-03-14T18:14:02.007 に答える
0

バケットに移動し、ファイル (メタデータ タブ) で指定されている MIME タイプを再確認します。そのはずContent-Type: application/pdf

于 2012-10-20T05:25:39.757 に答える