7

S3 に xyz という名前のバケットがあります。バケット内には、786/html/index.html に html ファイルがあり、786/html/images/ には複数の画像があります。フォルダーとファイルには、所有者のフル コントロールのアクセス許可があります。786/html/index.html の URL を生成するために aws ruby​​-sdk を使用しています。ページは正常に動作していますが、786/html/images の画像が 786/html/index.html にレンダリングされていません。ブラウザコンソールに次のエラーが表示されます:-

Failed to load resource: the server responded with a status of 403 (Forbidden) 

これで、786/html/images に公開読み取り許可を与えました。786 と 786/html には所有者のみの権限があります。786/html/index.html で画像をレンダリングできるようになりましたが、public_url からも画像にアクセスできるようになりました。786 と 786/html にはパブリック アクセス許可がないため、混乱していますが、画像にアクセスできます。

考えられる解決策は、AwsAccessKey と署名を index.html 内に存在する画像のソースに追加することです。ただし、複数の画像があるため、一般的な署名が必要です。

提案が必要

ありがとう、アプルヴァ・マヤンク

4

2 に答える 2

0

イメージを作成するときに、次のヘッダーを追加します。

x-amz-acl: public-read

ACL の詳細はこちら:

http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl

また、Content-Type が間違っていることがわかった場合は、ヘッダーがこれを解決します。

Content-Type: image/jpeg

于 2014-06-06T00:58:37.930 に答える