2016-08-04 14 views
-1

私は初心者とラーニングレイルです 私はawsアカウントをセットアップし、バケットとIAMを作成しました。私はIAMに必要な方針を添付しました。 しかし、画像をアップロードできません。railsチュートリアルの章13.4.4

if Rails.env.production? 
CarrierWave.configure do |config| 

config.fog_credentials = { 
    # Configuration for Amazon S3 
    :provider    => 'AWS', 
    :aws_access_key_id  => ENV['S3_ACCESS_KEY'], 
    :aws_secret_access_key => ENV['S3_SECRET_KEY'] 
} 
config.fog_directory  = ENV['S3_BUCKET'] 
end 
end 



class PictureUploader < CarrierWave::Uploader::Base 
include CarrierWave::MiniMagick 
process resize_to_limit: [400, 400] 

if Rails.env.production? 
storage:fog 
else 
storage:file 
end 

def store_dir 
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 

def extension_white_list 
    %w(jpg jpeg gif png) 
end 

end 

これらは私のログです:
enter image description here

が編集した、これは私のmicropost_controller.rbある

class MicropostsController < ApplicationController 
    before_action :logged_in_user, only: [:create, :destroy] 
    before_action :correct_user, only: [:destroy] 

    def create 
    @micropost = current_user.microposts.build(micropost_params) 
    if @micropost.save 
     flash[:success] = "Micropost created!" 
     redirect_to root_url 
    else 
     @feed_items = [] 
     render 'static_pages/home' 
    end 
    end 

    def destroy 
    @micropost.destroy 
    flash[:success] = "Micropost deleted" 
    redirect_to request.referrer || root_url 
    end 

    private 

    def micropost_params 
    params.require(:micropost).permit(:content, :picture) 
    end 

    def correct_user 
     @micropost = current_user.microposts.find_by(id: params[:id]) 
     redirect_to root_url if @micropost.nil? 
    end 
end 

THX

+0

AWSのポリシー上の問題のようです。私はそのチュートリアルに続いて、グループを作成し、必要なポリシーを割り当ててから、グループに特定のユーザー(アプリケーションで使用)を追加したことを思い出します。とにかく、plsはあなたの質問に 'microposts_controller.rb'を追加して、作成アクションを調べることができます。 – davideghz

+0

また、使用しているAWSリージョンによっては、 'config.fog_credentials'ハッシュの' carrier_wave.rb'イニシャライザに ':region => ENV ['S3_REGION']'を追加する必要があります。 – davideghz

+0

あなたのコントローラーは見栄えが良いです。 fog_credentialsにリージョン設定を追加しようとしましたか? – davideghz

答えて

0

私はそれがHerokuのにあった、私の問題を考え出しました。私の設定値S3_BUCKETは実際にS3__BUCKET、愚かな私でした。 THanks dave

関連する問題