У меня есть приложение Rails, которое загружает видео в корзину s3, которая запускает функцию Lambda для некоторой обработки видео и сохранения их в другом контейнере.
Я хотел бы изменить свой код Rails так что эти обработанные видео могут быть показаны.
В настоящее время я использую ActiveStorage, и я понимаю, что он не поддерживает несколько сегментов, поэтому я хотел бы знать, какой сервис поддерживает эту функцию, и какой подход лучше использовать.
Этот ответ указывает на нечто похожее с изменением путей к файлам с помощью carrierwave, fog и cloudfront, но я начинающий программист, поэтому не уверен, что смогу взломать его под свои нужды ... Использовать CDN с carrierwave + туман в s3 + облачный фронт с рельсами 3.1
Буду признателен за любые предложения о направлении
Мое решение Я взломал решение, которое заключается в простом доступе обработанное видео напрямую. Если он тупой, но работает, то он не тупой!:
@aws_url = @gif.video.attachment.service_url.sub(/\?.*/, '')
@aws_url = @aws_url.insert(21, '-resized')
@aws_url = @aws_url + '.mp4'
Здесь я установил @aws_url
в методе show контроллера, чтобы он равнялся service_url
минус лишний код. Затем я вставил -resized
в строку, чтобы в строке было указано правильное имя сегмента s3. Наконец, я добавил .mp4
в конце, потому что все обработанные видео являются mp4s. Чтобы заставить это работать, я сделал ведро publi c только для чтения, что, вероятно, не самая лучшая вещь, но meh