Tôi đã sử dụng đá quý carrier0ave 0.10.0 với RMagic để tải lên hình ảnh trên AWS S3. Tất cả mọi thứ đã được làm việc tốt, ngoại trừ nó đã dành quá nhiều thời gian để tải lên trên AWS S3. Vì vậy, suy nghĩ sử dụng backgroundwave backgrounder để tải lên hình ảnh trong nền. Tôi thiết lập backgroundwave backgrounder (0.4.2) nhưng trong tập tin này, tập tin gốc của tôi luôn được tải lên S3 nhưng các phiên bản của ảnh đó không bao giờ được tải lên S3.CarrierWave Backgrounder không tải lên các phiên bản hình ảnh lên AWS S3
Đây là carrierwave_backgrounder.rb tôi
CarrierWave::Backgrounder.configure do |c|
c.backend :sidekiq, queue: :carrierwave
end
tôi đã xác định hàng đợi của tôi trong 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
Đây là photo_uploader.rb tôi
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
Dưới đây là hồ sơ của tôi .rb file
mount_uploader :image_url, PhotoUploader
process_in_background :image_url
Tôi đã bắt đầu công nhân sidekiq sử dụng lệnh này
bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e development
Khi tôi tải lên image_url chỉ ảnh gốc được tải lên. Đây là nhật ký sidekiq sau khi tải lên tệp gốc. Nhưng tôi không thấy bất kỳ tệp phiên bản nào được tải lên. Tôi cũng đã kiểm tra xô S3 (Không có tập tin phiên bản nào chỉ có tập tin gốc)
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
Có điều gì đó tôi đang thiếu. Xin vui lòng giúp Cảm ơn trước
Âm thanh như một lỗi, bạn đã thử gỡ lỗi đá quý chưa? Nhìn những người lạ như thế này? https://stackoverflow.com/questions/15490972/carrierwave-processed-images-not-uploading-to-aws-s3?rq=1 – bbozo
@rohit kumar Bạn vẫn gặp sự cố này? Tôi đang phải đối mặt với điều này bây giờ và tôi không có ý tưởng về cách giải quyết nó. Đã googling quanh ngày nhưng không có gì tìm thấy. –