omega80 Опубликовано 28 сентября Поделиться Опубликовано 28 сентября Ввиду нерационального использования дорогостоящей NVMe на сервере решили подключить хранилище типа Amazon S3, но на российских хостингах. Из большого количество хостингов, которые применяем в нашем проекте для этих целей отлично подошел timeweb.ru (реферальная ссылка) - при регистрации по ссылке Вам будет начислено 2000 руб.: + одна из самых низких цен на хранилище в России + размещение S3 хранилищ в том же дата центре, что и сервера - ограничение на максимальный объем 2Тб (будем делать единый массив из нескольких S3 и это не будет проблемой) Таким образом переходим к оформлению хранилища S3 - можно сперва для опытов взять самый минимальный на 10Gb за 75 руб: Рис.1 Получаем отдельные 10 Гигабайт в облаке (можно также сделать собственное облако для себя, а не платить яндекс.диску - намного выгоднее). В настрояках бакета нам необходима информация для подключение нашего хранилища к нашей видеоплощадке: адрес бакета (хранилища) ключи (public и secret) Теперь подключаем к нашему видеопорталу на Peertube новое хранилище S3: sudo apt install s3fs *рекомендуется использовать версию не ниже 1.90 (по умолчанию именно она и устанавливается в Debian 12, если у вас более ранние выпуски - необходимо отдельно скомпилировать под вашу версию) Далее вносим данные для подключения в конфигурационный файл S3: echo <Access Key>:<Secret Access Key> > ~/.passwd-s3fs *данные для подключения вы можете найти в настройках самого хранилища S3 хостинга Теперь ограничиваем доступ к файлу с информацией для подключения к нашему S3 для остальных: chmod 600 ~/.passwd-s3fs Теперь подключаем наше хранилище к каталогу peertube: s3fs <имя бакета> /mnt/s3/ -o use_path_request_style -o url=https://s3.timeweb.com -o passwd_file=~/.passwd-s3fs *применяйте ваши данные для бакета и каталогов, например: s3fs a1b2c3-a1b2c3-a1b2c3-a1b2c3-a1b2c3-a1b2c3 /var/www/peertube/storage/S3/ -o use_path_request_style -o url=https://s3.timeweb.cloud -o passwd_file=~/.passwd-s3fs Теперь хранилище будет доступно по адресу: Проверяем через MC доступность нашего нового каталога (можно создать на S3 файл с названием "test" и убедиться в его доступности из под bash на сервере. Но это только до перезагрузки сервера. Чтобы у нас производилось автоматическое монтирование при каждом запуске сервера необходимо добавить монтирование каталога S3 в автозагрузку "/etc/fstab" (для Debian 12): s3fs#<имя бакета> /mnt/s3 fuse _netdev,allow_other,use_path_request_style,url=https://s3.timeweb.com,passwd_file=/root/.passwd-s3fs 0 0 *обращаемся внимание на пути монтирования и путь расположения файла с паролями! Многие делают ошибку именно в адресе пароля (добавляют в автозагрузку от root, а у него другой адрес домашнего каталога) Полезные источники: 1) Инструкция по настройке хранилища S3 (документация на официальном сайте хостинга timeweb.ru) 2) Ссылка на комментарий Поделиться на другие сайты Поделиться
omega80 Опубликовано 28 сентября Автор Поделиться Опубликовано 28 сентября Спустя ровно 10 дней после подключения S3 хранилища через создание символьной ссылки перестали открываться видео файлы, которые размещены на S3 хранилище. Если файл переконвертировать в web (он помещается в физический каталог на сервере) - такие видео будут доступны. Обращение в техническую поддержку не дало результатов (более суток переписки). Пока решается вопрос с предоставлением нам статистики использования нашего хранилища S3 (может все-таки есть лимиты на трафик/перезапись) решили сделать подключение внешнего хранения согласно официальной инструкции peertube: Ссылка на комментарий Поделиться на другие сайты Поделиться
omega80 Опубликовано 2 октября Автор Поделиться Опубликовано 2 октября Достаточно оперативно ответила техподдержка, пробуем применить политики: 1) Установим пакет работы с AWS: sudo apt install awscli -y Проверяем установленную версию: aws --version Теперь настроим AWS: aws configure На предложения вбиваем данные нашего бакета: AWS Access Key ID [None]: <Access Key> AWS Secret Access Key [None]: <Secret Access Key> Default region name [None]: ru-1 Default output format [None]: json где "AWS Access Key ID" - это ваш код доступа к S3 бакету, а "AWS Secret Access Key" - ключ доступа к S3 бакету. Остальные делаем согласно данным вашего бакета (для timeweb - "Default region name": ru-1. Последний пункт "Default output format" оставляем без изменений - json 2) Создаем из под пользователя peertube файл cors.json (прям в корневом для peertube каталоге) и вставляем в него: { "CORSRules": [ { "AllowedHeaders": ["*"], "AllowedMethods": ["GET", "HEAD"], "AllowedOrigins": ["*"] } ] } 3) Подключаем наш файл к бакету S3: aws s3api put-bucket-cors --bucket ИМЯ_БАКЕТА --endpoint-url https://s3.timeweb.cloud --cors-configuration file://cors.json где "ИМЯ_БАКЕТА" - ваш код бакета (длинный код, имя контейнера) Теперь можно проверить наши правила: aws s3api get-bucket-cors --bucket ИМЯ_БАКЕТА --endpoint-url https://s3.timeweb.cloud В терминалку система выдаст содержимое нашего файла из пункта 2 Источники: 1) Настройка CORS для доступа к объектам S3 (документация хостинга timeweb.cloud) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти