Доступ к локально сохраненным активным файлам хранения в производственной среде - PullRequest
2 голосов
/ 25 февраля 2020

У меня на Heroku работает приложение rails 6, которое используется для захвата видео и их загрузки. Типичный вариант использования - сделать видео, а затем загрузить его. Для этого я успешно использую active storage с прямой загрузкой в ​​Amazon S3.

Однако пользователь может использовать медленную мобильную связь, поэтому хочет загрузить видео позже, когда он использует широкополосную связь. Модель, которую я использую, выглядит следующим образом:

class Lesson
   has_one_attached :video
   ...
end

Пользователь делает видео, щелкая ссылку, сгенерированную этим кодом:

<%= simple_form_for@lesson) do |f| %>
   <%= f.file_field :video, id: 'video_file', direct_upload: true %>  
   ...
<% end %>

Если проверять lesson.video после него файл был прикреплен, но перед отправкой формы он, похоже, имеет структуру данных, включающую адрес локального файла, в котором хранится видео.

Можно ли каким-то образом сохранить информацию в lesson.video и затем загрузить файл для Amazon S3 позже?

1 Ответ

0 голосов
/ 25 февраля 2020

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

  • Включить ускорение передачи в вашем контейнере S3.

  • Изменить приложение на загружать файлы в нескольких частях , используя S3 Multipart Upload, и использовать многопоточность для загрузки более чем одной части одновременно.

Включить ускорение передачи

S3 Multipart Upload

...