Обновление: я перешел на CarrierWave (наконец-то он заработал), поэтому, хотя я все еще ценю ответы на этот вопрос, я не смогу попробовать, действительно ли они работают, поскольку я я полностью удалил DM-Paperclip из своего кода.
Всем привет,
Я разрабатываю Sinatra-webapp с использованием DataMapper и теперь хочу добавить некоторые функции загрузки с S3 в качестве хранилища. Я пробовал CarrierWave, но не смог заставить это работать, поэтому теперь пробую dm- скрепка. Это то, что у меня есть прямо сейчас:
Модель:
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, и я также не получаю никаких ошибок.
Любые идеи, что я делаю неправильно?