При загрузке изображения, загруженного с помощью Carrierwave на S3, я получаю пустое пустое изображение

В своем приложении я использую carrierwave и fog для загрузки изображений в S3. На сайте люди могут выбрать размер и загрузить фотографию. Когда они нажимают кнопку "загрузить", программа использует магию изображения, чтобы изменить размер изображения в соответствии с выбранным размером, а затем отправить его пользователю. Работает найти и отправить файл. Но проблема в том, что когда я открываю изображение, оно пустое! Ничего в файле. Когда я тестирую его на своем локальном сервере, он работает, но в производственном процессе не работает. Вот действие, которое отправляет загрузку:

def download
    @photo = Photo.friendly.find(params[:photo_id])
    if @photo.free?
        if params[:size].present?
            size = Size.find(params[:size])

            @photo.file.cache_stored_file!
            img = Magick::Image.read(@photo.file.file.file).first
            img.resize!(size.width, size.height)

            filename = "#{size.width}x#{size.height}-#{@photo.file.file.filename}"

            path = "#{Rails.root}/tempfreedownload/#{filename}"
            File.write(path, '')
            img.write path

            File.open(path, 'r') do |f|
                send_data f.read, type: 'image/png', filename: filename
            end

            File.delete(path)
            img.destroy!

            downloads = @photo.downloads + 1
            @photo.update_attribute(:downloads, downloads)
        else

        end

    else
        render file: "#{Rails.root}/public/404.html", layout: false, status: 404
    end
end

В чем может быть проблема?

0 ответов

Другие вопросы по тегам