#javascript #ruby-on-rails #ruby #carrierwave
#javascript #ruby-on-rails #ruby #carrierwave
Вопрос:
Я пытаюсь загрузить анимированный gif—файл размером всего 611 КБ, и для его завершения требуется от 30 до 40 секунд или дольше. Я уже настроил конфигурацию своего сервера client_max_body_size для приема загрузки файлов размером 10 МБ, и он уже работает нормально и не занимает слишком много времени, как проблема, о которой я сейчас говорю, с файлами jpg, jpeg и png в соответствии с проверенным. Я не уверен, что причина этого в конфигурации сервера или процессе генерации версий файла с помощью carrierwave, которые я вставил здесь. Я уже провел много исследований, но, похоже, я не могу найти ту же проблему, что и у меня. Кстати, я использую для этого загрузчик javascript. Кто-нибудь здесь сталкивался с той же проблемой с Rails carrierwave?
А также у меня есть это сообщение в моем firebug:
... POST data request size limit has been reached by Firebug. ...
Вот драгоценные камни, которые я использовал, и код carrierwave для моего загрузчика:
gem 'carrierwave'
gem 'carrierwave-aws'
gem 'carrierwave-base64'
app/uploaders/photo_uploader.rb
require 'securerandom'
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :aws
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process :auto_orient
def auto_orient
manipulate! do |img|
img.auto_orient!
img = yield(img) if block_given?
img
end
end
version :scaled_512 do
process :resize_to_fit => [512, 512]
end
version :thumb_425, from_version: :scaled_512 do
process :resize_to_fill => [425, 212]
end
version :thumb_256, from_version: :scaled_512 do
process :resize_to_fill => [256, 256]
end
def remove!
begin
super
rescue Fog::Storage::Rackspace::NotFound
end
end
def extension_white_list
%w(jpg jpeg gif png)
end
def filename
"#{secure_token}.#{file.extension}" if original_filename.present?
end
protected
def secure_token
var = :"@#{mounted_as}_secure_token"
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid)
end
end
Комментарии:
1. Разве вы не можете просто отключить свою обработку и версии для тестирования, чтобы узнать, является ли это вашей проблемой?
2. Я уже пробовал комментировать код для обработки версии фотографии, и результат составляет 10,78 с для загрузчика без обработки версии и 49,30 с с обработкой. И это только на моем локальном хостинге, это занимает слишком много времени на сервере.