Rails - как мне настроить разные места загрузки и выгрузки s3? - PullRequest
1 голос
/ 31 марта 2020

У меня есть приложение 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

...