私は、Carrierswave経由でアップロードした画像を、Amazonのs3を使用して私のRails 3.1アプリケーションの霧の宝石を使ってローカルに保存しました。画像が追加されている間、アプリケーションで画像をクリックすると、そのURLからアクセスキーと署名が提供されます。ここではサンプルのURLは、(XXXが情報を持つ文字列を置き換え)です。これは、開発中に起こっているAmazonのアクセスキーがCarrierwaveとFogのURLに表示されています
https://s3.amazonaws.com/bucketname/uploads/photo/image/2/IMG_4842.jpg?AWSAccessKeyId=XXX&Signature=XXX%3D&Expires=1332093418
(localhostを:3000)とするとき、私は生産のためHerokuのを使用しています。ここに私のアップローダーは次のとおりです。
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process :convert => :jpg
process :resize_to_limit => [640, 640]
version :thumb do
process :convert => :jpg
process :resize_to_fill => [280, 205]
end
version :avatar do
process :convert => :jpg
process :resize_to_fill => [120, 120]
end
end
そして、私のconfig /初期化子/ fog.rb:
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => 'XXX',
:aws_secret_access_key => 'XXX',
}
config.fog_directory = 'bucketname'
config.fog_public = false
end
誰もがこの情報を利用できないことを確認する方法を知っていますか?
UPDATE:ユーザー/ show.html.erbで部分から :ビューおよびコントローラ・コードを追加
<% if @user.photos.any? %>
<% for photo in @user.photos %>
<li class="span4 hidey">
<div class="thumb_box">
<%=link_to(image_tag(photo.image_url(:thumb).to_s), photo.image_url.to_s,
:class=>"lb_test") %>
...
</div>
</li>
<% end %>
<% end %>
がusers_controller.rb:
def show
@user = User.find(params[:id])
end
UPDATE:私はエラーページを追加URLからアクセスキー情報を削除するときに取得します。
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>47077D6EC13AD1D8</RequestId>
<HostId>+HTeODcWTqv3gbRIAwf+lI6sPzfNTegDXjT9SnMdqrYr7gLD1TD0qN+OgMLwA1JO
</HostId>
</Error>
ケビンだ
を削除し、私は問題を推測していることはあなたのビューまたはコントローラです。別の変換バージョンが必要な場合を除きます。あなたはコードを投稿できますか? –
こんにちはエド、私はビューのいずれかからコードを追加し、これが起こっているコントローラアクション。ありがとう。 – kcurtin
コンソールでphoto.image.url.to_sを評価するとどうなりますか?本当のイメージを指していますか? –