Деплой сборок в Yandex Cloud Object Storage с поддержкой очистки bucket
npm install deploy-to-yandex-object-storageDeploy static files to Yandex Cloud Object Storage with automatic bucket cleanup.


``bash`
npm install deploy-to-yandex-object-storage
Set the following environment variables:
`bash`Using environment variables
YANDEX_CLOUD_ACCESS_KEY_ID="your-key-id"
YANDEX_CLOUD_SECRET_ACCESS_KEY="your-secret-key"
YANDEX_CLOUD_BUCKET="my-bucket"
YANDEX_CLOUD_ENDPOINT="https://storage.yandexcloud.net"
YANDEX_CLOUD_REGION="ru-central1"
YANDEX_CLOUD_DIST_PATH="./dist"
`bashDeploy using environment variables
npx deploy-to-yandex-object-storage
$3
| Variable | CLI Flag | Default | Description |
| -------------------------------- | ----------------- | ---------- | ---------------------------------------------------------------- |
|
YANDEX_CLOUD_ACCESS_KEY_ID | --access-key-id | - | ID ключа доступа к Yandex Cloud |
| YANDEX_CLOUD_SECRET_ACCESS_KEY | --secret-key | - | Секретный ключ доступа к Yandex Cloud |
| YANDEX_CLOUD_BUCKET | --bucket | - | Имя бакета для деплоя |
| YANDEX_CLOUD_ENDPOINT | --endpoint | - | Endpoint Object Storage (обычно https://storage.yandexcloud.net) |
| YANDEX_CLOUD_REGION | --region | - | Регион (например, ru-central1) |
| YANDEX_CLOUD_STORAGE_CLASS | --storage-class | STANDARD | Класс хранилища: STANDARD, COLD или ICE |
| YANDEX_CLOUD_SKIP_CLEANUP | --no-clean | false | Пропустить очистку бакета перед деплоем |
| YANDEX_CLOUD_DIST_PATH | --dist | dist | Путь к директории с файлами для деплоя |
| YANDEX_CLOUD_DRY_RUN | --dry-run | false | Режим предпросмотра без фактической загрузки |
| YANDEX_CLOUD_VERBOSE | --verbose | false | Детальное логирование операций |Priority: CLI flags > Environment variables > Default values
$3
#### Skip Bucket Cleanup
By default, the tool cleans the bucket before deployment. To skip this:
`bash
npx deploy-to-yandex-object-storage --no-clean
`#### Storage Class
Specify the storage class for uploaded files:
`bash
npx deploy-to-yandex-object-storage --storage-class COLD
`Available values:
STANDARD, COLD, ICE#### File Filtering
Filter files using glob patterns:
`bash
Include only specific files
npx deploy-to-yandex-object-storage --include ".html,.css,*.js"Exclude specific files
npx deploy-to-yandex-object-storage --exclude ".map,.txt"Combine include and exclude
npx deploy-to-yandex-object-storage --include ".html,.css,.js" --exclude ".map"
`Note: Use comma-separated values for multiple patterns.
Features
- Automatic bucket cleanup before deployment (optional with
--no-clean)
- Automatic MIME type detection for common file types
- Brotli and gzip compression support
- Cache-Control headers for optimal performance
- Storage class support (STANDARD, COLD, ICE)
- File filtering with glob patterns (include/exclude)
- Simple CLI interface
- Dry-run mode for testing without actual deployment
- Verbose logging for debuggingCI/CD Examples
$3
`yaml
name: Deploy to Yandex Cloudon:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Deploy to Yandex Cloud
env:
YANDEX_CLOUD_ACCESS_KEY_ID: ${{ secrets.YANDEX_CLOUD_ACCESS_KEY_ID }}
YANDEX_CLOUD_SECRET_ACCESS_KEY: ${{ secrets.YANDEX_CLOUD_SECRET_ACCESS_KEY }}
YANDEX_CLOUD_BUCKET: my-bucket
YANDEX_CLOUD_ENDPOINT: https://storage.yandexcloud.net
YANDEX_CLOUD_REGION: ru-central1
run: npx deploy-to-yandex-object-storage
`$3
`yaml
deploy:
image: node:22
script:
- npm ci
- npm run build
- npx deploy-to-yandex-object-storage
only:
- main
variables:
YANDEX_CLOUD_ACCESS_KEY_ID: $YANDEX_CLOUD_ACCESS_KEY_ID
YANDEX_CLOUD_SECRET_ACCESS_KEY: $YANDEX_CLOUD_SECRET_ACCESS_KEY
YANDEX_CLOUD_BUCKET: my-bucket
YANDEX_CLOUD_ENDPOINT: https://storage.yandexcloud.net
YANDEX_CLOUD_REGION: ru-central1
`$3
`yaml
version: 2.1
jobs:
deploy:
docker:
- image: cimg/node:22.0
steps:
- checkout
- run: npm ci
- run: npm run build
- run: npx deploy-to-yandex-object-storage
environment:
YANDEX_CLOUD_ACCESS_KEY_ID: ${YANDEX_CLOUD_ACCESS_KEY_ID}
YANDEX_CLOUD_SECRET_ACCESS_KEY: ${YANDEX_CLOUD_SECRET_ACCESS_KEY}
YANDEX_CLOUD_BUCKET: my-bucket
YANDEX_CLOUD_ENDPOINT: https://storage.yandexcloud.net
YANDEX_CLOUD_REGION: ru-central1
``Contributions, issues and feature requests are welcome! Feel free to check issues page.
Give a ⭐️ if this project helped you!
MIT © Andrey Pakhomov