Почему файлы, загруженные на S3 через URL, не имеют расширения? - PullRequest
0 голосов
/ 28 июля 2011

У меня есть загрузка картинок, работающих с s3 на heroku без проблем.

У меня также есть метод, который позволяет пользователям загружать с веб-адреса.

К сожалению, создается впечатление, что при загрузке изображений с использованием этого метода они сохраняются без расширения файла.

Итак, я получаю такую ​​ссылку на URL изображения ...

http://s3.amazonaws.com/mysite/images/23/original.?1311799466

Если бы то же изображение было загружено локально, оно бы выглядело так:

http://s3.amazonaws.com/mysite/images/23/original.JPG?1311799466

В моей модели pic это код, который я использую для загрузки через веб-адреса:

def download_remote_image

        begin
            self.image = open(URI.parse(self.pic_url))
        rescue
            errors.add_to_base("- something is wrong with the image url.")
            return false
        else
            return true
        end
    end

Есть идеи?

Ответы [ 2 ]

1 голос
/ 28 июля 2011

Изменить с помощью этого:

def download_remote_image
  begin
    io = open(URI.parse(pic_url))
    def io.original_filename; base_uri.path.split('/').last; end
    io.original_filename.blank? ? nil : io
  rescue
  end
end

Осторожные, последние версии Paperclip выдают ошибки при обнаружении объекта io вместо File, но не уверены, исправили ли они это.

0 голосов
/ 28 июля 2011

, так как вы используете скрепку, URL-адрес изображения должен быть сгенерирован с помощью скрепки, например:

self.image(:thumb)
...