Привет! Я уже начинал писать про yandex cloud (Далее YC), если интересно - почитайте Yandex Cloud - сервисные аккаунты и установка yc cli (1)
Нам обязательно потребуется сервисный аккаунт, я подробно описал процесс его создания в посте выше!
В этом посте я расскажу про то, как можно загружать статику (различные файлы - js / css / шрифты / картинки / видео) используя aws cli. Это позволит программно (а не руками) загружать нужные вам файлы в облако (по расписанию, или как вы сами захотите), организовывать резервное копирование, выгружать какие-нибудь отчеты и все такое)
Бакет
Для того, чтобы загружать файлы, у вас должен быть Яндекс Аккаунт, Облако и директория в нем. Уже внутри этой директории нужно создать бакет (то место, куда будем грузить данные, публичный - если хотим, чтобы к файлам имели доступ рандомные люди из интернета).
Итак, считаем, что бакет создан, переходим к установке aws CLI
Установка и настройка AWS CLI
Объектное хранилище Яндекса имеет aws совместимое API - поэтому мы можем использовать aws cli от Amazon чтобы работать с объектами в бакете.
Процесс установки подробно описан в документации AWS, я приведу пример установки на Mac OS.
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
Это все, теперь в терминале доступна aws cli, можно проверить с помощью which aws
и aws --version
Чтобы продолжить, нам обязательно потребуется создать:
- сервисный аккаунт (В посте Yandex Cloud - загружаем статику используя aws cli (2) я подробно описал процесс)
- статический ключ доступа
Я опишу процесс, ожидая что вы уже разобрались с созданием сервисного аккаунта и установкой yc cli
- Копирую имя сервисного аккаунта (в моем случае cloud-manager)
yc iam service-account list
# +----------------------+---------------+
# | ID | NAME |
# +----------------------+---------------+
# | .................... | cloud-manager |
# +----------------------+---------------+
- Создаем статический ключ
yc iam access-key create --service-account-name cloud-manager
access_key:
id: aje1r**********
service_account_id: aje***************
created_at: "2024-02-18T18:26:53.297208898Z"
key_id: YCAJE*****************
secret: YCNN****************************
- Сохраните key_id и secret в надежное место, повторно вы их не получите. Они нам потребуются в следующем пункте
- Конфигурируем aws с помощью
aws configure
AWS Access Key ID [None]: <Значение key_id которое мы сохранили>
AWS Secret Access Key [None]: <Значение secret которое мы сохранили>
Default region name [None]: ru-central1
Default output format [None]:
Проверяем, что credentials сохранились в файл конфигурации aws
cat ~/.aws/credentials
Получаем список бакетов
aws s3 --endpoint-url=https://storage.yandexcloud.net ls
- Команда выведет список бакетов, с которыми вы можете работать, используя aws cli.
эту команду можно сохранить в алиасы или просто использовать автодополнения (если они у вас подключены, я писал об этом в заметке Как включить автодополнения в терминале на Mac OS)
Загружаем файлы
Я буду грузить статику, которая остается после сборки моего блога (это в основном js/css файлы и картинки)
Сделать это можно с помощью команды
aws s3 cp --endpoint-url=https://storage.yandexcloud.net --recursive ./<local-folder-to-upload>/ s3://<bucket-name>/<folder-name>/
Спустя примерно минуту загрузка окончена и файлы оказались в облаке - их можно наблюдать, как в веб интерфейсе, так и с использованием aws cli
Про особенности хранения и другие операции можно почитать в документации yandex cloud - очень советую к прочтению
Вместо заключения
Надеюсь, тебе помогла эта статья и ты настроишь все немного быстрей, чем это сделал я )