コンテンツにスキップ

カスタムストレージから続ける

Capgoは、独自のストレージソリューションをサポートして、ユーザーがアプリケーションバンドルの更新を自社インフラまたは第三者ストレージサービスでホストできるようにします。この機能は、特定のセキュリティ要件、法的要件、既存のストレージインフラを持つ組織にとって特に便利です。

概要

概要

Capgoのカスタムストレージは、バンドルを外部の場所にアップロードし、CapgoにアクセスするためのURLを提供することで機能します。Capgo SDKは、Capgoのデフォルトクラウドストレージではなく、カスタムストレージの場所から直接更新をダウンロードします。

カスタムストレージを使用する最も簡単な方法は、公開アクセス可能なURLにバンドルをアップロードし、そのURLをCapgoに提供することです。

基本的な外部URLアップロード

セクション:基本的な外部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を使用するように設定します。

ターミナル画面
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互換サービスまたはカスタムエンドポイントの場合:

ターミナル画面
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 ファイルを作成し、オプションで暗号化することが含まれます。

ステップ 1: Zip バンドルを作成する

Step 1: Zip Bundle を作成する

まず、zip ファイルを作成してアプリケーション バンドルを含めます:

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

zip コマンドは、zip ファイルのチェックサムを返します。このチェックサムを使用して、zip ファイルを暗号化する必要がある場合があります。必要に応じて、 --json オプションを使用して、構造化された出力が含まれるようにします。

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
説明Zip Command Options
--pathフォルダをzipするパス (webDirからcapacitor.configをデフォルト)
--bundlezipファイルのバージョン番号
--namezipファイルのカスタム名
--jsonJSON形式で結果を出力 (チェックサムを含む)
--no-code-checknotifyAppReady()の呼び出しとindexファイルのチェックをスキップ
--key-v2暗号化v2を使用
--package-jsonモノレポ用のpackage.jsonファイルのパス (カンマで区切る)

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

ステップ2: Bundleを暗号化 (オプション)のセクション

アップロードする前に、zip Bundleを暗号化することでセキュリティを向上させることができます。

ターミナル画面
# 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 parameter is required and should be the checksum of your zip file. You can get the checksum from the zip command output (use __CAPGO_KEEP_0__ option for structured output). CHECKSUM デフォルトでは、エンコードコマンドはローカルプライベート署名キーを使用します。カスタムキーを指定するには、__CAPGO_KEEP_1__または__CAPGO_KEEP_2__オプションを使用してください。 --json エンコードコマンドはアップロードまたは復号化に必要な__CAPGO_KEEP_3__を返します。

エンコードコマンドのオプション --key セクション:エンコードコマンドのオプション --key-data オプション

説明 ivSessionKey __CAPGO_KEEP_0__

__CAPGO_KEEP_1__

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

Example 1: 外部 URL に HTTPS を使用

セクション: Example 1: 外部 URL に HTTPS を使用
  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

    Note the ivSessionKey from the output.

  4. Upload to your storage: Upload the encrypted zip file to your hosting service.

  5. Register with Capgo:

    Terminal window
    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. Build your app:

    Terminal window
    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. ビルドして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

セキュリティに関する考慮事項

セクション「セキュリティに関する考慮事項」

__CAPGO_KEEP_0__のカスタムストレージを使用する場合、以下のセキュリティベストプラクティスを考慮してください。

  • ストレージのURLはアプリのユーザーにアクセス可能ですが、パブリックに検出されないようにする
  • 可能な場合は署名済みURLまたはトークンベースの認証を使用する
  • ウェブベースのアプリでは適切なCORSヘッダーを実装する
  • 常に敏感なバンドルをCapgo暗号化ツールで暗号化する
  • 暗号化キーを安全に保存し、定期的にローテートする
  • すべてのバンドルURLにHTTPSを使用する(モバイルおよびElectronアプリ用に必須)
  • アクセスログを監視して異常なダウンロードパターンを検出する
  • 失敗したバンドルダウンロードのアラートを設定する
  • ストレージパーミッションを定期的に検証する

Bundleのダウンロードに失敗しました:

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

暗号化エラー:

  • 暗号化されたBundleと一致していることを確認してください ivSessionKey 正しい鍵でBundleが暗号化されたことを確認してください
  • 新しいBundleの場合、暗号化v2を使用することを確認してください
  • S3アップロードに失敗しました:

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

  • バケットポリシーとCORS構成を確認してください
  • __CAPGO_KEEP_0__
  • 指定された地域が正しいことを確認してください

デバッグ コマンド

デバッグ コマンド

バンドル ステータスを確認してください:

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

バンドル インテグリティを検証してください:

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

次のステップ

次のステップ

カスタムストレージから続けるセクション

__CAPGO_KEEP_0__が使用している場合

カスタムストレージ カスタムストレージを使用している場合 セキュリティとコンプライアンスの計画に役立つためには 暗号化 暗号化の実装詳細 コンプライアンス コンプライアンスの実装詳細 Capgo セキュリティ スキャナー Capgo セキュリティ スキャナーの製品ワークフロー Capgo セキュリティ Capgo セキュリティの製品ワークフロー Capgo トラスト センター Capgo トラスト センターの製品ワークフロー