Rails Carrierwave Cloudinary Video Upload выдает недействительные версии URL - PullRequest
0 голосов
/ 25 мая 2019

Я использовал Carrierwave & Cloudinary в своем приложении Rails 5.2.1 для загрузки, манипулирования и хранения клиентских файлов.Я добавляю поддержку видео и столкнулся с проблемой .url.Версия преобразует видео в миниатюру png.Cloudinary показывает эту миниатюру в «video / upload», в то время как все остальные миниатюры изображений используют «image / upload».В загрузчике должен быть способ вернуть путь миниатюрного png видео, используя «video / upload».Кто-нибудь еще ударил по этому?

carrierwave 1.3.1

cloudinary 1.11.1

user_media_uploader.rb

class UserMediaUploader < CarrierWave::Uploader::Base
    include Cloudinary::CarrierWave

    IMAGE_MIMES       = %w(image/jpeg image/gif image/png image/bmp)
    VIDEO_MIMES       = %w(video/mpeg video/mp4 video/quicktime video/webm video/3gpp video/3gpp2 video/3gpp-tt video/H261 video/H263 video/H263-1998 video/H263-2000 video/H264)
    TEXT_MIMES        = %w(text/vcard text/csv text/rtf text/richtext text/calendar text/directory)
    APPLICATION_MIMES = %w(application/pdf)
    AUDIO_MIMES       = %w(audio/basic audio/L24 audio/mp4 audio/mpeg audio/ogg audio/vorbis audio/vnd.rn-realaudio audio/vnd.wave audio/3gpp audio/3gpp2 audio/ac3 audio/vnd.wave audio/webm audio/amr-nb audio/amr)

    # general processing
    process :assign_attributes

    # Provide a default URL as a default if there hasn't been a file uploaded
    def default_url(*args)
        # ActionController::Base.helpers.asset_path([version_name, "file_name.svg"].compact.join('_'))
    end

    # create a standard version
    version :standard do
        process convert: 'png'
        process resize_to_fit: [400, 400]
    end

    # create a thumbnail version
    version :thumb do
        process eager: true
        process convert: 'png'
        process resize_to_fit: [90, 90]
    end

    # image tag & folder on Cloudinary
    def assign_attributes
        return {:tags => "", :folder => "clients/#{model.user.client_id.to_s}/users/#{model.user_id.to_s}"}
    end

    # maximum file size
    def size_range
        1..150.megabytes
    end

    # content type white list
    def content_type_whitelist
        IMAGE_MIMES + VIDEO_MIMES + TEXT_MIMES + APPLICATION_MIMES + AUDIO_MIMES
    end

    # content type black list
    def content_type_blacklist
        ['application/text', 'application/json']
    end
end

После загрузки видео в CloudinaryСледующие URL-адреса доступны в консоли Cloudinary ...

Видео: https://res.cloudinary.com/hcfhlrdjg/video/upload/v1558730289/clients/2/contacts/29/file_name.3gp

Миниатюра: http://res.cloudinary.com/hcfhlrdjg/video/upload/c_fit,h_90,w_90/v1558730289/clients/2/contacts/29/file_name.png

Carrierwave создает следующие URL-адреса ...

Видео:

client_attachment.image.url

https://res.cloudinary.com/hcfhlrdjg/video/upload/v1558730289/clients/2/contacts/29/file_name.3gp

Миниатюра:

client_attachment.image.thumb.url

https://res.cloudinary.com/hcfhlrdjg/image/upload/c_fit,h_90,w_90/v1558730289/clients/2/contacts/29/file_name.png

thumbnail "image / upload" должен быть "video / upload".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...