내용으로 건너뛰기

커스텀 스토리지

Capgo은 앱 번들에 대한 사용자 정의 저장 솔루션을 지원하여 업데이트를 자체 인프라 또는 제3자 저장 서비스에 호스팅 할 수 있습니다. 이 기능은 특정 보안 요구 사항, 규정 준수 요구 사항 또는 기존 저장 인프라가 있는 조직에 특히 유용합니다.

Custom storage in Capgo works by uploading your bundle to an external location and providing Capgo with the URL to access it. The Capgo SDK will then download updates directly from your custom storage location instead of Capgo’s default cloud storage.

대형 배포 크기에서 비용 최적화

외부 URL 업로드

The simplest way to use custom storage is by uploading your bundle to any publicly accessible URL and providing that URL to Capgo.

기본 외부 URL 업로드

기본 외부 URL 업로드 섹션
터미널 창
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip

Capgo이 Capgo의 클라우드 스토리지에 업로드하는 대신에 지정된 URL에 있는 번들을 참조하도록 명령합니다.

터미널 창

클립보드 복사
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip --iv-session-key YOUR_IV_SESSION_KEY

S3 통합 섹션

S3 통합

Capgo는 Amazon S3와 S3 호환 저장소 서비스에 대한 내장 지원을 제공합니다. CLI은 S3로 업로드할 수 있도록 자동으로 번들을 업로드하고 Capgo을 S3 URL을 사용하도록 구성할 수 있습니다.

S3 업로드 옵션

S3 업로드 옵션 섹션
터미널 창
npx @capgo/cli@latest bundle upload \
--s3-region us-east-1 \
--s3-apikey YOUR_ACCESS_KEY \
--s3-apisecret YOUR_SECRET_KEY \
--s3-bucket-name your-bucket-name

S3 구성 완료

S3 구성 완료 섹션

S3 호환 서비스나 커스텀 엔드포인트에 대해:

터미널 창
npx @capgo/cli@latest bundle upload \
--s3-region us-east-1 \
--s3-apikey YOUR_ACCESS_KEY \
--s3-apisecret YOUR_SECRET_KEY \
--s3-endpoint https://s3.your-provider.com \
--s3-bucket-name your-bucket-name \
--s3-port 443 \
--no-s3-ssl # Only if your endpoint doesn't support SSL

S3 구성 매개변수

S3 구성 매개변수 섹션
파라미터설명필수
--s3-regionS3 버킷이 있는 AWS 지역
--s3-apikeyS3 접근 키 ID
--s3-apisecretS3 비밀 접근 키
--s3-bucket-nameS3 버킷 이름
--s3-endpoint사용자 지정 S3 엔드포인트 URL없음
--s3-portS3 엔드포인트의 포트없음
--no-s3-sslS3 업로드를 위한 SSL 비활성화없음

압축 파일 준비 및 암호화

압축 파일 준비 및 암호화

사용자 지정 저장소 사용 시, 특히 암호화를 사용할 때, 압축 파일을 준비하는 것이 필요합니다. 이에는 zip 파일을 생성하고 optionally 암호화하는 것이 포함됩니다.

1단계: Zip 압축 파일 생성

1단계: Zip 압축 파일 생성

먼저 앱의 압축 파일을 zip 파일로 생성하세요:

터미널 창
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

zip 명령어는 zip 파일의 체크섬을 반환합니다. 필요 시 zip 파일을 암호화할 수 있습니다. 체크섬을 사용하려면 --json option을 사용하여 체크섬을 포함한 구조화된 출력을 얻을 수 있습니다.

zip 명령어 옵션

zip 명령어 옵션 섹션
터미널 창
npx @capgo/cli@latest bundle zip [appId] \
--path ./dist \
--bundle 1.2.3 \
--name myapp-v1.2.3 \
--json \
--no-code-check \
--key-v2 \
--package-json ../../package.json,./package.json
옵션설명
--pathcapacitor.config에서 webDir를 기본값으로 사용하는 폴더의 경로
--bundle압축 파일 이름을 지정하는 버전 번호
--name압축 파일 이름을 지정하는 사용자 정의 이름
--jsonJSON 형식으로 결과를 출력합니다 (체크섬 포함)
--no-code-checknotifyAppReady() 호출 및 인덱스 파일을 확인하지 않습니다
--key-v2암호화 v2 사용
--package-json모노레포의 package.json 파일 경로 (쉼표로 구분)

2단계: 압축 파일 암호화 (선택)

2단계: 압축 파일 암호화 (선택) 섹션

업로드하기 전에 압축 파일을 암호화하여 보안을 강화하세요:

터미널 창
# Using default local key
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
# Using custom key file
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key ./path/to/.capgo_key_v2
# Using key data directly
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key-data "PRIVATE_KEY_CONTENT"

The CHECKSUM 이 매개변수는 필수이며, zip 파일의 체크섬이어야 합니다. zip 명령어의 출력에서 체크섬을 가져올 수 있습니다 (구조화된 출력을 사용하여) --json option

By default, the encrypt command will use your local private signing key. You can specify a custom key using the --key or --key-data Capacitor live-update alternatives comparison page에서 사용하는 HTML 텍스트 조각 (부모 키 `alternatives_cta_questions`). 페이지/영역: Capacitor live-update 대안 비교 페이지. 역할: 장기 마케팅 또는 법적 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. | HTML 텍스트 조각 (부모 키 `appflow_cta_questions`). 페이지/영역: Appflow 비교/이동 마케팅 복사본. 역할: 장기 마케팅 또는 법적 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. | HTML 텍스트 조각 (부모 키 `capwesome_cta_questions`). 페이지/영역: Capawesome 비교 페이지. 역할: 장기 마케팅 또는 법적 문단. 보존: Capgo 제품/브랜드 및 개발자 용어. | HTML 텍스트 조각 (부모 키 `consulting_faq_subtitle`). 페이지/영역: 컨설팅 서비스 페이지. 역할: 섹션 서브 타이틀 또는 태그 라인. 보존: Capgo 제품/브랜드 및 개발자 용어. | Appflow 비교/이동 마케팅 복사본

options. ivSessionKey The encrypt command will return the

needed for upload or decryption.

암호화 명령 옵션
암호화 명령 옵션옵션
zipPath설명
checksum암호화할 zip 파일의 경로 (필수)
--keyzip 파일의 체크섬 (필수) - zip 명령에서 가져오세요
--key-data개인 서명 키 데이터 직접 입력 (선택사항)
--jsonJSON 형식으로 결과 출력

제목이 "완전한 워크플로 예제"인 섹션

제목이 "예제 1: 외부 URL에 암호화"인 섹션
  1. JSON 형식으로 결과 출력

    터미널 창
    npm run build
  2. zip 압축 파일을 생성하세요:

    터미널 창
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --bundle 1.2.3

    이 명령어의 반환된 체크섬을 주의하세요.

  3. 압축 파일을 암호화하세요:

    터미널 창
    npx @capgo/cli@latest bundle encrypt ./com.example.app-1.2.3.zip CHECKSUM_FROM_STEP_2

    출력에서 ivSessionKey 출력에서

  4. 저장소에 업로드하세요: 호스팅 서비스에 암호화된 zip 파일을 업로드하세요.

  5. Capgo으로 등록하세요:

    터미널 창
    npx @capgo/cli@latest bundle upload \
    --external https://your-cdn.com/bundles/com.example.app-1.2.3.zip \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_3

예제 2: 직접 S3 업로드

예제 2: 직접 S3 업로드
  1. 앱을 빌드하세요:

    터미널 창
    npm run build
  2. 직접 S3에 업로드하세요:

    터미널 창
    npx @capgo/cli@latest bundle upload \
    --s3-region us-west-2 \
    --s3-apikey YOUR_ACCESS_KEY \
    --s3-apisecret YOUR_SECRET_KEY \
    --s3-bucket-name your-app-bundles \
    --channel Production

예제 3: 암호화된 S3

암호화된 S3 예제 3
  1. 빌드 및 zip:

    터미널 창
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. 압축 파일 암호화:

    터미널 창
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. 암호화된 S3 업로드:

    터미널 창
    npx @capgo/cli@latest bundle upload \
    --s3-region us-west-2 \
    --s3-apikey YOUR_ACCESS_KEY \
    --s3-apisecret YOUR_SECRET_KEY \
    --s3-bucket-name your-app-bundles \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_2 \
    --channel Production

보안 고려 사항

보안 고려 사항

커스텀 스토리지 사용 시 다음 보안 최적화 사항을 고려하십시오:

접근 제어

접근 제어
  • 앱 사용자에게만 액세스 가능한 스토리지 URL을 보장하고 공개적으로 발견되지 않도록 하십시오.
  • 가능한 경우 서명된 URL 또는 토큰 기반 인증을 사용하십시오.
  • 웹 기반 앱의 경우 적절한 CORS 헤더를 구현하십시오.

암호화

암호화
  • Always encrypt sensitive bundles using the Capgo encryption tools
  • 암호화 키를 안전하게 저장하고 정기적으로 회전하십시오.
  • 모바일 및 Electron 앱의 경우 모든 번들 URL에 HTTPS를 사용하십시오.
  • 다운로드 패턴을 감지하기 위해 액세스 로그를 모니터링하세요.
  • 다운로드 실패 시 알림을 설정하세요.
  • 스토리지 권한을 정기적으로 감사하세요.

문제 해결

Troubleshooting

일반적인 문제

Common Issues

다운로드가 안 되는 경우:

  • 다운로드 URL이 공개적으로 접근 가능하고 HTTPS를 사용하는지 확인하세요. (모바일 및 Electron 앱의 경우 필수)
  • 웹 앱의 CORS 헤더를 확인하세요.
  • __CAPGO_KEEP_0__

__CAPGO_KEEP_1__

  • __CAPGO_KEEP_2__ ivSessionKey __CAPGO_KEEP_3__
  • __CAPGO_KEEP_4__
  • __CAPGO_KEEP_5__

__CAPGO_KEEP_6__

  • __CAPGO_KEEP_7__
  • __CAPGO_KEEP_8__
  • __CAPGO_KEEP_9__

__CAPGO_KEEP_10__

__CAPGO_KEEP_11__

배포 패키지 상태 확인:

터미널 창
npx @capgo/cli@latest app debug

배포 패키지完整성 확인:

터미널 창
npx @capgo/cli@latest bundle list

다음 단계

다음 단계
  • 배우기 채널 다양한 배포 환경을 관리하기 위해
  • 탐색 업데이트 동작 업데이트를 적용하는 방법을 커스터마이즈하려면
  • 설정 CI/CD 통합 페이지/영역: Capgo 빌더 / 네이티브 클라우드 빌드 제품 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 메시지 키 `native_build_feature_ci_cd` (Native Build Feature Ci Cd).

자동화된 커스텀 스토리지 워크플로우를 위해

Custom Storage에서 계속

Section titled “Custom Storage에서 계속” Custom Storage를 사용 중이라면 Custom Storage 보안 및 규정 준수 계획을 위해 커스터마이즈하고 암호화 법적 준수 법적 준수에 대한 구현 세부 정보를 위해 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로우를 위해 Capgo 보안 Capgo 보안의 제품 워크플로우를 위해, 그리고 Capgo 신뢰 센터 Capgo 신뢰 센터의 제품 워크플로우를 위해