Użyłem gemara 0W0 z ceną nośnika z RMagic do przesyłania obrazów na AWS S3. Wszystko działało dobrze, z tym, że przesłanie go na AWS S3 zajęło zbyt dużo czasu. Więc pomyślałeś, korzystając z backgroundware carrierwave do przesyłania zdjęć w tle. Ustawiłem backgroundware nośnika (0.4.2), ale w tym jednym z moich oryginalnych plików zawsze przesyłam S3, ale wersje tego obrazu nigdy nie zostaną przesłane na S3.CarrierWave Backgrounder nie ładuje obrazów wersji do AWS S3
Oto moja carrierwave_backgrounder.rb
CarrierWave::Backgrounder.configure do |c|
c.backend :sidekiq, queue: :carrierwave
end
Mam zdefiniowane moją kolejkę w sidekiq.rb
Sidekiq.configure_server do |config|
config.redis = { :url => "redis://#{ENV['REDIS_ENDPOINT']}:6379", :namespace=> "#{ENV['REDIS_NAMESPACE']}" }
config.options =
queues: %w{
critical
carrierwave
}
})
end
Oto moja photo_uploader.rb
class PhotoUploader < CarrierWave::Uploader::Base
include ::CarrierWave::Backgrounder::Delay
include CarrierWave::RMagick
storage :fog
def store_dir
"uploads/images/"
end
def filename
"#{secure_token}.#{file.extension}" if original_filename.present?
end
def orient_image
manipulate! do |img|
img.auto_orient
img
end
end
# Create different versions of your uploaded files:
version :thumb_small do
process :resize_to_fill => [100,100]
process :strip
end
def strip
manipulate! do |img|
img.strip!
img = yield(img) if block_given?
img
end
end
def extension_white_list
%w(jpg jpeg gif png)
end
def get_version_dimensions
model.width, model.height = `identify -format "%wx%h " #{file.path}`.split(/x/)
end
protected
def secure_token
var = :"@#{mounted_as}_secure_token"
model.instance_variable_get(var) || model.instance_variable_set(var, SecureRandom.hex(5))
end
end
Oto mój profil Plik .rb
mount_uploader :image_url, PhotoUploader
process_in_background :image_url
zacząłem pracownika sidekiq poleceniem
bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e development
Kiedy przesłać image_url tylko oryginalny obraz zostanie przesłany. To jest dziennik sidekiq po wczytaniu oryginalnego pliku. Ale nie widzę żadnego pliku wersji. Sprawdziłem również S3 bucket (brak wersji pliku tylko oryginalnego)
2016-01-11T08:52:20.772Z 3983 TID-ownpyrrxk CarrierWave::Workers::ProcessAsset JID-91e3803d50defb2d1419cef1 INFO: start
2016-01-11T08:52:31.119Z 3983 TID-ownpyrrxk CarrierWave::Workers::ProcessAsset JID-91e3803d50defb2d1419cef1 INFO: done: 10.347 sec
Czy jest coś, czego mi brakuje. Proszę o pomoc z góry dzięki
Brzmi jak błąd, czy próbowałeś debugować klejnot? Szukał dziwnych got'chów takich jak ten? https://stackoverflow.com/questions/15490972/carrierwave-processed-images-not-uploading-to-aws-s3?rq=1 – bbozo
@rohit kumar Czy nadal masz ten problem? Stoję w obliczu tego teraz i nie mam pojęcia, jak go rozwiązać. Czytał przez cały dzień, ale nic nie znaleziono. –