Я ищу способ «записать поток» некоторых видеофайлов .mp4 - так как они генерируются каким-то приложением python - в хранилище облачного хранилища Google.Приложение python упаковано и развернуто в GKE и в настоящее время прекрасно работает как веб-сервис.Но проблема в том, что все видеофайлы локально генерируются и хранятся в пути (tmp/processed
) внутри модуля.
Однако я хочу, чтобы видеофайлы записывались в файлы в хранилище Google с именем my_bucket
.
Я прочитал gcsfuse рекомендации (https://github.com/maciekrb/gcs-fuse-sample) о том, как смонтировать ведро в кубиках Кубернетеса, а также прочитал о boto (* 1014)* используется для передачи потоков в сегменты хранения.
Чтобы смонтировать my_bucket
в tmp/processed
, я добавил следующие строки в файл развертывания моего приложения (YAML):
lifecycle:
postStart:
exec:
command:
- gcsfuse
- -o
- nonempty
- my_bucket
- tmp/processed
preStop:
exec:
command:
- fusermount
- -u
- tmp/processed/
securityContext:
capabilities:
add:
- SYS_ADMIN
Я еще не использовал boto и подумал, что может быть достаточно просто монтировать! Но мое приложение выдает ошибку ввода / вывода при попытке создать видеофайл.
СейчасМой вопрос заключается в том, что мне нужно использовать оба gcsfuse и boto , или достаточно просто установить ведро в мой модуль GKE? И я правильно выполняю монтаж?
ОБНОВЛЕНИЕ : я проверил, правильно ли я смонтировал, используя следующую команду:
kubectl exec -it [POD_NAME] bash