2013-10-21 18 views
7

私はxyzという名前のバケツを持っています。バケツの中には786/html/index.htmlにhtmlファイル、786/html/images /に複数のイメージがあります。フォルダとファイルには所有者のフルコントロールのアクセス許可があります。 786/html/index.htmlのURLを生成するためにaws ruby​​-sdkを使用していますが、ページは正常に動作していますが、786/html/imagesのイメージは786/html/index.htmlにレンダリングされません。 -s3のファイルのパーミッション

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にはまだ画像にアクセスできるパブリックパーミッションがないので混乱しています。

可能な解決策は、index.html内に存在するイメージのソースにAwsAccessKeyとシグネチャを追加することです。しかし、我々は複数の画像を持っているので、一般的な署名が必要です。

提案が

おかげで、 Apurva Mayank

答えて

3

S3は、オブジェクトストアである必要があります。これは階層的なファイルシステムではなく、実際には「フォルダ」を持っていません。

オブジェクトキーには、慣習によって、/で区切られた接頭辞を付けることができます。

これは、フォルダの錯覚を与えますが、実際の階層と同じではありません。すべてのオブジェクトのアクセス許可は独立しており、ポリシー(プレフィックス参照も含む)の影響を受けます。

しかし、「786と786/htmlにはパブリックアクセス権がありませんが、「786/html/images」にはパブリックパーミッションがありません。それらと一緒に。

あなたのバケツを扱うために使用しているものは、そうでないものがあるという印象を与えているかもしれません。また、「フォルダ内の」オブジェクトの許可を手作りし、これらの権限が継承されているという印象を与えるかもしれません。

htmlファイルを署名付きURLでのみ表示できるようにする場合や、画像をページのみで表示できるようにする(独自にダウンロードできないようにする)場合は、コードでも完全修飾と署名が必要です埋め込まれた画像のURL(およびファイルをプライベートにしたい場合はそのファイル)。

+1

786/HTML/index.htmlの中の画像にアクセスするために、私は、アクセスキーと署名を提供する必要があります。アクセスキーはすべてのファイルに共通ですが、署名はどうですか? s3オブジェクトの汎用シグネチャを生成できますか?s3はこのタイプの機能をサポートしていますか? –

関連する問題