MCP HubMCP Hub
SKILL·E3915C

cloud-uploader

bitwize-music-studio
업데이트됨 1 month ago
8 조회
358
81
358
GitHub에서 보기
기타general

정보

이 스킬은 생성된 홍보 동영상을 호스팅 및 배포를 위해 Cloudflare R2 또는 AWS S3 스토리지에 업로드합니다. 홍보 디렉터 스킬 이후에 수동으로 사용되어 웹사이트, 직접 링크 또는 CDN 전송을 위한 콘텐츠를 제공합니다. 이 스킬은 Python의 boto3 라이브러리가 필요하며, 동영상 제작과 배포 사이의 워크플로우에 통합됩니다.

빠른 설치

Claude Code

추천
기본
npx skills add bitwize-music-studio/claude-ai-music-skills -a claude-code
플러그인 명령대체
/plugin add https://github.com/bitwize-music-studio/claude-ai-music-skills
Git 클론대체
git clone https://github.com/bitwize-music-studio/claude-ai-music-skills.git ~/.claude/skills/cloud-uploader

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

Cloud Uploader Skill

Upload promo videos and other album content to cloud storage (Cloudflare R2 or AWS S3).

Purpose

After generating promo videos with /bitwize-music:promo-director, upload them to cloud storage for:

  • Hosting on websites
  • Sharing via direct links
  • CDN distribution
  • Backup and archival

When to Use

  • After promo videos generated, user wants to upload to cloud
  • User says "upload promos to R2" or "upload to S3"
  • User says "upload promo videos for [album]"
  • Manual invocation only (not automatic)

Position in Workflow

Generate → Master → Promo Videos → **[Cloud Upload]** → Release

Optional step after promo-director, before release-director.

Prerequisites

Cloud Configuration

Cloud credentials must be configured in ~/.bitwize-music/config.yaml:

cloud:
  enabled: true
  provider: "r2"  # or "s3"

  # For Cloudflare R2
  r2:
    account_id: "your-account-id"
    access_key_id: "your-access-key"
    secret_access_key: "your-secret-key"
    bucket: "promo-videos"

  # For AWS S3
  s3:
    region: "us-west-2"
    access_key_id: "your-access-key"
    secret_access_key: "your-secret-key"
    bucket: "promo-videos"

See ${CLAUDE_PLUGIN_ROOT}/reference/cloud/setup-guide.md for detailed setup instructions.

Required Files

  • Promo videos generated (run /bitwize-music:promo-director first)
  • Located at: {audio_root}/artists/{artist}/albums/{genre}/{album}/promo_videos/
  • Album sampler at: {audio_root}/artists/{artist}/albums/{genre}/{album}/album_sampler.mp4

Python Dependencies

# If using the shared venv (recommended)
~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt

# Or install separately
pip install boto3

The upload script uses ~/.bitwize-music/venv if available, otherwise falls back to system Python.

Workflow

1. Verify Prerequisites

Check config:

cat ~/.bitwize-music/config.yaml | grep -A 20 "cloud:"

Verify:

  • cloud.enabled: true
  • Provider credentials configured (r2 or s3)
  • Bucket name set

Check promo videos exist:

ls {audio_root}/artists/{artist}/albums/{genre}/{album}/promo_videos/
ls {audio_root}/artists/{artist}/albums/{genre}/{album}/album_sampler.mp4

If missing:

Error: Promo videos not found.

Generate with: /bitwize-music:promo-director {album}

2. Get Python Command

Call get_python_command() first to get the venv Python path and plugin root. Use these for all bash invocations below.

PYTHON="{python from get_python_command}"
PLUGIN_DIR="{plugin_root from get_python_command}"

3. Preview Upload (Dry Run)

Preview first:

$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --dry-run

Output shows:

  • Provider and bucket
  • Files to upload
  • S3 keys (paths in bucket)
  • File sizes

4. Upload Files

Upload all (promos + sampler):

$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album}

Upload only track promos:

$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --type promos

Upload only album sampler:

$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --type sampler

Upload with public access:

$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --public

5. Verify Upload

For R2:

  • Check Cloudflare dashboard → R2 → Your bucket
  • Files should appear under {artist}/{album}/

For S3:

  • Check AWS Console → S3 → Your bucket
  • Or use AWS CLI: aws s3 ls s3://{bucket}/{artist}/{album}/

5. Report Results

## Cloud Upload Complete

**Provider:** R2 (or S3)
**Bucket:** {bucket}
**Album:** {album}

**Uploaded Files:**
- {artist}/{album}/promos/01-track_promo.mp4
- {artist}/{album}/promos/02-track_promo.mp4
- ...
- {artist}/{album}/promos/album_sampler.mp4

**Total:** 11 files, 125.4 MB

**Next Steps:**
1. Verify files in cloud dashboard
2. If public: Test URLs work
3. Continue to release: /bitwize-music:release-director {album}

Upload Path Structure

IMPORTANT: Cloud paths are FLAT - no genre folder.

The cloud path structure is different from the local content structure:

LocationPath Structure
Local content{content_root}/artists/{artist}/albums/{genre}/{album}/
Local audio{audio_root}/artists/{artist}/albums/{genre}/{album}/
Cloud{artist}/{album}/ (no genre!)

Files are organized in the bucket as:

{bucket}/
└── {artist}/
    └── {album}/
        └── promos/
            ├── 01-track_promo.mp4
            ├── 02-track_promo.mp4
            ├── ...
            └── album_sampler.mp4

Example for album "my-album" by "bitwize" in rock genre:

  • Local: ~/music/artists/bitwize/albums/rock/my-album/
  • Cloud: bitwize/my-album/promos/ (NOT bitwize/albums/rock/my-album/)

Command Options

OptionDescription
--type promosUpload only track promo videos
--type samplerUpload only album sampler
--type allUpload both (default)
--dry-runPreview without uploading
--publicSet files as public-read
--audio-root PATHOverride audio_root from config

Invocation Examples

Basic upload:

/bitwize-music:cloud-uploader my-album

Preview only:

/bitwize-music:cloud-uploader my-album --dry-run

Upload promos only:

/bitwize-music:cloud-uploader my-album --type promos

Upload with public access:

/bitwize-music:cloud-uploader my-album --public

Error Handling

"Cloud uploads not enabled"

  • Add cloud.enabled: true to config
  • See ${CLAUDE_PLUGIN_ROOT}/reference/cloud/setup-guide.md

"Credentials not configured"

  • Add credentials to config file
  • For R2: account_id, access_key_id, secret_access_key
  • For S3: access_key_id, secret_access_key

"Album not found"

  • Check album exists in {audio_root}/artists/{artist}/albums/{genre}/{album}/
  • Verify artist name in config matches

"No files found to upload"

  • Generate promo videos first: /bitwize-music:promo-director {album}

"Access Denied"

  • Check credentials are correct
  • For R2: Verify API token has write permissions
  • For S3: Verify IAM policy allows s3:PutObject

"Bucket not found"

  • Create bucket first in cloud dashboard
  • Verify bucket name in config

Security Notes

  • Credentials stored in config file (ensure proper file permissions)
  • Config file should be gitignored in user's content repo
  • Default: Files uploaded as private (not public)
  • Use --public flag only for files intended for public access
  • Consider using environment variables for CI/CD (future enhancement)

Integration with Other Skills

Handoff FROM

promo-director:

After promo generation:

Promo videos generated successfully.

**Optional:** Upload to cloud storage: /bitwize-music:cloud-uploader {album}

Handoff TO

release-director:

After cloud upload:

Cloud upload complete.

Ready for release workflow: /bitwize-music:release-director {album}

Supported Providers

Cloudflare R2

  • S3-compatible API
  • No egress fees
  • Global CDN integration
  • Good for high-traffic content

AWS S3

  • Industry standard
  • Fine-grained IAM permissions
  • CloudFront CDN available
  • Good for AWS ecosystem integration

Future Enhancements

  • Environment variable credentials (for CI/CD)
  • Multiple bucket support
  • Automatic CDN invalidation
  • Progress bar for large uploads
  • Resume failed uploads
  • Bucket creation if missing
  • Additional providers (Backblaze B2, DigitalOcean Spaces)

Related Documentation

  • ${CLAUDE_PLUGIN_ROOT}/reference/cloud/setup-guide.md - Detailed setup instructions
  • ${CLAUDE_PLUGIN_ROOT}/skills/promo-director/SKILL.md - Generate promo videos
  • ${CLAUDE_PLUGIN_ROOT}/skills/release-director/SKILL.md - Release workflow

Model Recommendation

Sonnet 4.5 - This skill runs scripts and coordinates workflow. No creative output from LLM.

Version History

  • v0.14.0 - Initial implementation
    • R2 and S3 support via boto3
    • Dry-run mode
    • Public/private upload options
    • Path organization by artist/album

GitHub 저장소

bitwize-music-studio/claude-ai-music-skills
경로: skills/cloud-uploader
0
ai-musicai-music-toolsaudio-masteringclaudeclaude-codeclaude-code-plugin
FAQ

Frequently asked questions

What is the cloud-uploader skill?

cloud-uploader is a Claude Skill by bitwize-music-studio. Skills package instructions and resources that Claude loads on demand, so Claude can perform cloud-uploader-related tasks without extra prompting.

How do I install cloud-uploader?

Use the install commands on this page: add cloud-uploader to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.

What category does cloud-uploader belong to?

cloud-uploader is in the Other category, tagged general.

Is cloud-uploader free to use?

Yes. cloud-uploader is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.

연관 스킬

llamaguard
기타

LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.

스킬 보기
cost-optimization
기타

이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.

스킬 보기
sports-betting-analyzer
기타

이 Claude Skill은 스프레드, 오버/언더, 프로프 베트를 포함한 스포츠 베팅 시장을 분석합니다. 역사적 추이와 상황별 통계를 검토하여 가치 베트를 발견하고, 교육적 목적으로 실행 가능한 권장 사항이 담긴 구조화된 마크다운 결과를 제공합니다. 개발자는 이 기능을 스포츠 베팅 분석 도구에 활용할 수 있으며, 단순히 엔터테인먼트/교육 목적으로만 설계되었음을 유의해야 합니다.

스킬 보기
quantizing-models-bitsandbytes
기타

이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.

스킬 보기