Недопустимое изображение при загрузке изображения пользователя facebook/twitter на S3

Я пытаюсь загрузить на amazon s3 существующее изображение на facebook или twitter от пользователя, который только что зарегистрировался в моем приложении, но некоторая проверка не позволяет мне сохранить объект пользователя, выдает: Image is invalid. Я думал, что это для моего extension_white_list, но я удалил его, и он продолжает говорить Image is invalid.

  • Это не ошибка, я думаю, это просто сообщение от проверки на несущей волне, даже если строка URL-адреса изображения верна.

АватарЗагрузчик

# encoding: utf-8

class AvatarUploader < CarrierWave::Uploader::Base

  include CarrierWaveDirect::Uploader

  include CarrierWave::RMagick

  # Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
  include Sprockets::Helpers::RailsHelper
  include Sprockets::Helpers::IsolatedHelper

  include CarrierWave::MimeTypes
  process :set_content_type

  def store_dir
    "avatar/#{model.id}"
  end

  version :thumb do
    process resize_to_fill: [50, 50]
  end

  # def extension_white_list
  #   %w(jpg jpeg gif png bmp)
  # end
end

Создание пользователя:

...
    new_user = User.create( :name => auth['info']['name'], 
                     :email => User.email_from_auth(auth) )
    auth_image_url = Authentication.larger_image(auth) # a string of user image url from social network authentication data. ie: http://a0.twimg.com/profile_images/1255111511/skyline.jpg
    unless auth_image_url.blank?
      new_user.remote_image_url = auth_image_url
      new_user.save
    end
...

person p1nox    schedule 05.12.2012    source источник
comment
Вы проверяли журналы работы s3 с помощью SDK? Это должно дать вам больше информации, если загрузка не работает. Работает ли URL-адрес, когда вы используете его в браузере?   -  person Keshi    schedule 06.12.2012
comment
Да, адрес работает. Нет, изображение не загружается, потому что проверка не удалась.   -  person p1nox    schedule 06.12.2012
comment
Получаете ли вы какие-либо журналы из SDK? Если URL-адрес правильный при получении изображения, это может быть проблемой с созданием подписи для загрузки.   -  person Keshi    schedule 06.12.2012


Ответы (1)


Фиксированный! Ошибка не имеет ничего общего с несущей волной, просто тот факт, что объект не существует в базе данных в момент загрузки изображения, сначала я сохраняю нового пользователя, а затем:

after_create :upload_image_from_auth

def upload_image_from_auth
  auth = self.authentications.first
  unless auth.nil?
    self.remote_image_url = auth.larger_image
    self.save
  end   
end
person p1nox    schedule 06.12.2012