コンテンツにスキップ

カスタムストレージ

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.

Overview

概要

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にバンドルをアップロードし、そのURLをCapgoに提供することです。

ターミナル画面
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

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-regionS3バケットのAWSリージョンはい
--s3-apikeyS3アクセスキーIDはい
--s3-apisecretS3シークレットアクセスキーはい
--s3-bucket-nameS3バケットの名前はい
--s3-endpointカスタムS3エンドポイントURLいいえ
--s3-portS3エンドポイントのポートいいえ
--no-s3-sslS3アップロードのSSL無効化いいえ

バンドル準備と暗号化

バンドル準備と暗号化

カスタムストレージを使用する場合、特に暗号化を使用する場合、バンドルを適切に準備する必要があります。これには、zipファイルを作成し、オプションで暗号化することが含まれます。

Step 1: Zip Bundle を作成する

Step 1: Zip Bundle

まず、zip ファイルを作成してください。

ターミナル画面
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

zip コマンドは、zip ファイルのチェックサムを返します。必要に応じて、zip ファイルを暗号化するために、このチェックサムを使用できます。structured output を取得するには、 --json 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
Option概要
--pathcapacitor.config から webDir を取得する (デフォルト)
--bundleバンドルバージョン番号を zip ファイルに付与する
--namezip ファイルに付与するカスタム名
--jsonJSON形式で結果を出力 (チェックサムを含む)
--no-code-checknotifyAppReady() の呼び出しと index ファイルのチェックをスキップ
--key-v2暗号化 v2 を使用
--package-jsonモノレポ用の package.json ファイルのパス (カンマ区切り)

ステップ 2: バンドルを暗号化 (オプション)

セクション: "ステップ 2: バンドルを暗号化 (オプション)"

アップロードする前に、zip バンドルを暗号化してセキュリティを向上させます。

ターミナル画面
# 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"

この CHECKSUM パラメータは必須で、zipファイルのチェックサムになります。zipコマンドの出力からチェックサムを取得できます (構造化出力のオプションを使用してください)。 --json デフォルトでは、encryptコマンドはローカルプライベート署名キーを使用します。カスタムキーを指定するには、

または --key or --key-data options.

オプション ivSessionKey 必要な

アップロードまたはデコードに必要な

ライブアップデートの暗号化コマンド
暗号化コマンドのオプション説明
zipPathエンコードするzipファイルのパス (必須)
checksumzipファイルのチェックサム (必須) - zipコマンドから取得
--keyプライベート署名鍵のカスタムパス (任意、ローカル鍵を使用)
--key-dataプライベート署名鍵データ (任意)
--json出力結果をJSON形式で取得

完全なワークフロー例

ワークフロー例

Live Updateの例 1: 外部 URL と暗号化

「例1:暗号化された外部URL」
  1. アプリを構築してください:

    ターミナル画面
    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
  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
  1. ビルドして圧縮:

    ターミナルウィンドウ
    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ヘッダーを実装する
  • すべての敏感なバンドルを Capgo の暗号化ツールで暗号化する
  • 暗号化キーを安全に保存し、定期的に回転する
  • すべてのバンドル URL に HTTPS を使用する (モバイルおよび Electron アプリ用必須)
  • アクセスログを監視して不審なダウンロードパターンを検出する
  • 失敗したバンドルダウンロードのアラートを設定する
  • ストレージ権限を定期的に検証する

トラブルシューティング

「トラブルシューティング」

一般的な問題

「一般的な問題」

ダウンロードが完了しない:

  • URLがパブリックにアクセス可能で、HTTPSを使用していることを確認してください (モバイルおよびElectronアプリ用に必須)
  • Webアプリ用のCORSヘッダーを確認してください
  • バンドルの形式が正しいことを確認してください

暗号化エラー:

  • ライブアップデート ivSessionKey 正しい鍵で暗号化されたバンドルを確認してください
  • 新しいバンドル用に暗号化v2を使用することを確認してください
  • S3アップロード失敗:

S3のクレデンシャルと権限を確認してください

  • S3の認証情報と権限を確認してください。
  • バケットポリシーとCORS構成を確認
  • 指定されたリージョンが正しいことを確認

バンドルステータスを確認:

ターミナルウィンドウ
npx @capgo/cli@latest app debug

バンドル完整性を確認:

ターミナルウィンドウ
npx @capgo/cli@latest bundle list

続けてカスタムストレージ

続けてカスタムストレージ

Capgoを使用している場合、カスタムストレージを使用するには、CapacitorのLive Update機能を有効にする必要があります。 カスタム ストレージ セキュリティと法的合致性を計画するには、 暗号化 暗号化の実装詳細については 法的合致性 法的合致性の実装詳細については Capgo セキュリティ スキャナー Capgo セキュリティ スキャナーの製品ワークフローについては Capgo セキュリティ Capgo セキュリティの製品ワークフローについては、 Capgo トラスト センター Capgo トラスト センターの製品ワークフローについては