-1
ich bin neuling und learning rails ich habe mein aws-konto eingerichtet, einen bucket und IAM erstellt. Ich habe auch die erforderlichen Richtlinien an meine IAM angehängt. Ich kann jedoch kein Bild hochladen.rails tutorial kapitel 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
diese meine Protokolle sind:
bearbeitet, das ist mein 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
es sieht aus wie ein Grundsatzproblem auf AWS. Als ich dieses Tutorial befolgte, erinnere ich mich daran, dass ich eine Gruppe erstellt, ihr die erforderlichen Richtlinien zugewiesen und dann einen bestimmten Benutzer (von der App verwendet) zur Gruppe hinzugefügt habe. Wie auch immer, bitte fügen Sie Ihrer Frage den 'microprosts_controller.rb' hinzu, damit wir die Erstellungsaktion überprüfen können. – davideghz
Je nachdem, welche AWS-Region Sie verwenden, müssen Sie möglicherweise '' region => ENV ['S3_REGION'] 'zu Ihrem' carrier_wave.rb'-Initialisierer hinzufügen, im 'config.fog_credentials'-Hash. – davideghz
Ihr Controller sieht gut aus. Haben Sie versucht, die Gebietskonfiguration zu fog_credentials hinzuzufügen? – davideghz