Обновление: Я перешел на CarrierWave (наконец-то он заработал), поэтому, хотя я все еще ценю ответы на этот вопрос, я не смогу попробовать, если они действительно работают с тех порЯ полностью удалил DM-Paperclip из своего кода.
Привет,
Я занимаюсь разработкой веб-приложения Sinatra с использованием DataMapper и сейчас собираюсь добавить несколькоФункция загрузки с S3 в качестве хранилища.Я пробовал CarrierWave , но я не мог заставить это работать, так что теперь я пытаюсь dm-paperclip.Вот что у меня сейчас:
Модель:
class Article
include DataMapper::Resource
include Paperclip::Resource
property :id, Serial
property :created_at, DateTime
property :updated_at, DateTime
property :title, String
property :body, Text
has_attached_file :screenshot,
:storage => :s3,
:s3_credentials => {
:access_key_id => 'my-access-key-id',
:secret_access_key => 'my-secret_access-key',
:bucket => 'my-bucket'
},
:styles => {
:medium => "300x300>",
:thumb => "100x100>"
}
end
Контроллер:
post '/articles/create' do
@article = Article.new
@article.title = params[:title]
@article.body = params[:body]
@article.screenshot = params[:screenshot]
begin
@article.save
rescue DataMapper::SaveFailureError => e
puts "Error saving article: #{e.to_s} validation: #{@article.errors.values.join(', ')}"
rescue StandardError => e
puts "Got an error trying to save the article #{e.to_s}"
end
redirect '/articles'
end
Тем не менее, когда я создаю новую статью, она ничего не сохраняет вмой S3 bucket и я тоже не получаю никаких ошибок.
Есть идеи, что я делаю неправильно?