메뉴로 건너뛰기

커스텀 스토리지

Capgo supports custom storage solutions for your app bundles, allowing you to host your updates on your own infrastructure or third-party storage services. This is particularly useful for organizations with specific security requirements, compliance needs, or existing storage infrastructure.

설치, 동기화 및 소스 마크다운 가이드를 포함한 __CAPGO_KEEP_0__.

Section titled “Overview”

Capgo의 사용자 지정 저장소는 외부 위치에 패키지를 업로드하고 Capgo에 저장소에 접근할 수 있는 URL을 제공하여 작동합니다. 사용자 지정 저장소 위치에서 직접 업데이트를 다운로드하는 Capgo SDK가 업데이트를 다운로드하는 대신 Capgo의 기본 클라우드 저장소 대신 사용됩니다.

사용자 지정 저장소의 가장 단순한 방법은 패키지를 공개적으로 접근할 수 있는 URL에 업로드하고 Capgo에 URL을 제공하는 것입니다.

터미널 창
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip

이 명령어는 Capgo이 지정된 URL에 있는 번들을 업로드하는 대신 Capgo의 클라우드 스토리지에 업로드하는 것을 알려줍니다.

보안 외부 저장소에 대한 암호화된 번들을 제공하고 복호화 키를 제공할 수 있습니다.

터미널 창
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip --iv-session-key YOUR_IV_SESSION_KEY

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 구성 매개변수 섹션
__CAPGO_KEEP_0____CAPGO_KEEP_1____CAPGO_KEEP_2__
--s3-regionAWS S3 버킷의 지역__CAPGO_KEEP_3__
--s3-apikeyS3 접근 키 ID__CAPGO_KEEP_4__
--s3-apisecretS3 비밀 키__CAPGO_KEEP_5__
--s3-bucket-nameS3 버킷 이름__CAPGO_KEEP_6__
--s3-endpoint__CAPGO_KEEP_7__아니요
--s3-portS3 엔드포인트의 포트아니요
--no-s3-sslS3 업로드를 위해 SSL을 비활성화아니요

압축물 준비 및 암호화

압축물 준비 및 암호화

사용자 지정 저장소 사용 시, 특히 암호화를 사용할 때, 압축물을 올바르게 준비해야 합니다. 이에는 zip 파일을 생성하고 선택적으로 암호화하는 것이 포함됩니다.

1단계: Zip 압축물 생성

1단계: Zip 압축물 생성

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

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

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

Zip Command Options

Zip Command Options
터미널 창
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
Option설명
--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"

는 필수 매개 변수이며, zip 파일의 체크섬을 입력해야 합니다. 체크섬은 zip 명령어의 출력에서 가져올 수 있습니다 (구조화된 출력을 사용하는 경우) CHECKSUM The --json parameter is required and should be the checksum of your zip file. You can get the checksum from the zip command output (use option for structured output).

기본적으로 암호화 명령은 로컬 개인 서명 키를 사용합니다. 사용자 지정 키를 지정하려면 --key 또는 --key-data 옵션

암호화 명령은 업로드 또는 복호화에 필요한 ivSessionKey 을 반환합니다.

암호화 명령 옵션

암호화 명령 옵션
옵션설명
zipPath암호화할 zip 파일의 경로 (필수)
checksumzip 명령에서 가져올 zip 파일의 체크섬 (필수)
--key사용자 지정 개인 서명 키의 경로 (선택, 로컬 키를 기본으로 사용)
--key-data개인 서명 키 데이터 직접 입력 (선택 사항)
--json출력 결과는 JSON 형식입니다.

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

예제 1: 암호화된 외부 URL

제목이 '예제 1: 암호화된 외부 URL'인 섹션

앱을 빌드하세요:
  1. protectedTokens

    터미널 창
    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. 업로드 하세요: __CAPGO_KEEP_0__에 등록하세요.

  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

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__
  1. __CAPGO_KEEP_2__

    __CAPGO_KEEP_3__
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. __CAPGO_KEEP_5__

    __CAPGO_KEEP_6__
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. __CAPGO_KEEP_8__

    __CAPGO_KEEP_9__
    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

__CAPGO_KEEP_11__

보안 고려 사항

__CAPGO_KEEP_0__ 사용 시 다음 보안 최적화 방법을 고려하십시오:

  • 저장소 URL이 앱 사용자에게만 접근 가능하고 공개적으로 발견되지 않도록 하십시오.
  • 가능한 경우 서명된 URL 또는 토큰 기반 인증을 사용하십시오.
  • 웹 기반 앱의 경우 적절한 CORS 헤더를 구현하십시오.
  • Always encrypt sensitive bundles using the Capgo encryption tools
  • 모바일 및 Electron 앱의 경우 모든 패키지 URL에 HTTPS를 사용하십시오 (필수)
  • Section titled “Security Considerations”

__CAPGO_KEEP_0__

__CAPGO_KEEP_1__
  • __CAPGO_KEEP_2__
  • __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__
  • 압축 형식이 올바른지 확인하세요

암호화 오류:

  • 확인하세요 ivSessionKey 암호화된 압축이 일치하는지 확인하세요
  • 암호화된 압축이 올바른 키로 암호화되었는지 확인하세요
  • 새로운 압축에 암호화 v2를 사용하세요

S3 업로드 실패:

  • S3 인증 정보 및 권한을 확인하세요
  • 버킷 정책 및 CORS 구성 확인
  • 지정된 지역이 올바른지 확인하세요

__CAPGO_KEEP_0__:

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

__CAPGO_KEEP_1__:

터미널 창
npx @capgo/cli@latest bundle list
  • 알아보기 채널 다양한 배포 환경을 관리하는 방법
  • 탐색 업데이트 동작 업데이트를 적용하는 방법을 맞춤화 하기 위해
  • 설정 CI/CD 통합 자동화된 저장소 워크플로우를 설정하기 위해

Custom Storage에서 계속하기

Custom Storage에서 계속하기

__CAPGO_KEEP_0__를 사용하는 경우 __CAPGO_KEEP_0__를 사용하는 경우 __CAPGO_KEEP_0__를 사용하는 경우 __CAPGO_KEEP_1__와 연결하기 __CAPGO_KEEP_1__를 사용하여 __CAPGO_KEEP_2__ 구현 세부 사항을 구현하기 위해 __CAPGO_KEEP_2__ [__CAPGO_KEEP_0__] 준수 __CAPGO_KEEP_0__ 준수 구현 세부 사항에 대해 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로에 대해 Capgo 보안 Capgo 보안의 제품 워크플로에 대해 Capgo 신뢰 센터 Capgo 신뢰 센터의 제품 워크플로에 대해