deploy-to-yandex-object-storage
v0.2.0
Published
Деплой сборок в Yandex Cloud Object Storage с поддержкой очистки bucket
Downloads
6
Maintainers
Readme
Deploy to Yandex Object Storage
Deploy static files to Yandex Cloud Object Storage with automatic bucket cleanup.
Installation
npm install deploy-to-yandex-object-storageUsage
Environment Variables
Set the following environment variables:
# 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"Deploy
# Deploy using environment variables
npx deploy-to-yandex-object-storage
# Deploy using CLI flags (overrides env variables)
npx deploy-to-yandex-object-storage \
--access-key-id "your-key-id" \
--secret-key "your-secret-key" \
--bucket "my-bucket" \
--endpoint "https://storage.yandexcloud.net" \
--region "ru-central1" \
--dist "./build"
# Or install globally
npm install -g deploy-to-yandex-object-storage
deploy-to-yandex-object-storageConfiguration
| 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
Advanced Options
Skip Bucket Cleanup
By default, the tool cleans the bucket before deployment. To skip this:
npx deploy-to-yandex-object-storage --no-cleanStorage Class
Specify the storage class for uploaded files:
npx deploy-to-yandex-object-storage --storage-class COLDAvailable values: STANDARD, COLD, ICE
File Filtering
Filter files using glob patterns:
# 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 debugging
CI/CD Examples
GitHub Actions
name: Deploy to Yandex Cloud
on:
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-storageGitLab CI
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-central1CircleCI
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-central1Contributing
Contributions, issues and feature requests are welcome! Feel free to check issues page.
Show your support
Give a ⭐️ if this project helped you!
License
MIT © Andrey Pakhomov
