コンテンツにスキップ

カスタム ストレージ

Capgoは、独自のストレージ ソリューションをサポートすることで、Capgoアプリ バンドルをアップデートするのに役立ちます。Capgoをホストするには、独自のインフラストラクチャまたは第三者ストレージ サービスを使用できます。この機能は、特定のセキュリティ要件、法的要件、または既存のストレージ インフラストラクチャを持つ組織にとって特に便利です。

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

Capgoに公開アクセス可能な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

CapgoはAmazon S3とS3互換ストレージサービスに対応しています。CLIはS3にバンドルを自動的にアップロードし、CapgoをS3 URLで設定します。

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

__CAPGO_KEEP_0__ provides built-in support for Amazon S3 and S3-compatible storage services.

セクション「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-apisecret__CAPGO_KEEP_0__はい
--s3-bucket-name__CAPGO_KEEP_1__はい
--s3-endpoint__CAPGO_KEEP_2__いいえ
--s3-port__CAPGO_KEEP_3__いいえ
--no-s3-ssl__CAPGO_KEEP_4__いいえ

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

Step 1: Zip Bundleを作成する

バンドル作成のステップ1

最初に、zipファイルを作成してアプリケーションバンドルを圧縮してください。

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

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

Zipコマンドのオプション

ターミナル画面
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
オプション説明
--pathcapacitor.configのwebDirからデフォルトでフォルダをzipします
--bundleバンドルバージョン番号をzipファイルの名前として使用
--nameカスタムのzipファイル名
--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"

The CHECKSUM パラメータは必須で、zip ファイルのチェックサムになります。zip コマンドの出力からチェックサムを取得できます ( --json オプションを使用して構造化された出力)。

デフォルトでは、暗号化コマンドはローカルプライベート署名キーを使用します。カスタムキーを指定するには --key オプションを使用します。 --key-data 暗号化コマンドはアップロードまたは復号化に必要な

を返します。 ivSessionKey 暗号化コマンドのオプション

オプション説明
zipPath__CAPGO_KEEP_0__ (必須)
checksum__CAPGO_KEEP_1__ (必須) - zip コマンドから取得
--key__CAPGO_KEEP_2__ (省略可、ローカルキーを使用)
--key-data__CAPGO_KEEP_3__ (省略可)
--jsonJSON形式で出力
  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

例3:S3に暗号化

例3:S3に暗号化
  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ヘッダーを実装する
  • 敏感なバンドルを常にCapgo暗号化ツールを使用して暗号化する
  • 暗号化キーを安全に保存し、定期的に回転する
  • モバイルおよびElectronアプリケーション向けにはすべてのバンドルURLにHTTPSを使用する (必須)
  • アクセスログを監視して異常なダウンロードパターンを検出する
  • バンドルダウンロードに失敗したときにアラートを設定する
  • ストレージパーミッションを定期的に検査する

トラブルシューティング

トラブルシューティング

よくある問題

よくある問題

バンドルがダウンロードされない:

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

暗号化エラー:

  • 暗号化されたバンドルと一致していることを確認してください ivSessionKey 正しい鍵で暗号化されたバンドルが使用されていることを確認してください
  • 新しいバンドル用に暗号化v2を使用していることを確認してください
  • __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

  • S3接続のエラーが発生しています。確認してください。
  • S3のクレデンシャルと権限を確認してください。
  • バケットポリシーとCORS設定を確認してください。

指定されたリージョンが正しいことを確認してください。

__CAPGO_KEEP_0__

「デバッグ コマンド」

バンドル状態を確認してください:
npx @capgo/cli@latest app debug

コピー

バンドル完整性を確認してください:
npx @capgo/cli@latest bundle list