コンテンツにスキップ

カスタム ストレージ

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.

protectedTokens

「概要」

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

URLアップロード

「URLアップロード」

カスタムストレージを使用する最も簡単な方法は、バンドルを任意の公開アクセス可能な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アップロードオプション

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

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

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

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

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

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

ターミナル画面
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
オプション説明
--pathzipファイルを作成するフォルダのパス(capacitor.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"

The CHECKSUM パラメータは必須で、zipファイルのチェックサムを指定してください。zipコマンドの出力からチェックサムを取得できます (構造化された出力のオプションを使用してください)。 --json 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__ for structured output).

デフォルトでは、エンコード コマンドはローカル プライベート署名 キーを使用します。カスタム キーを指定するには --key または --key-data Capacitorライブアップデートの代替

エンコード コマンド ivSessionKey エンコード コマンドの結果

アップロードまたは復号化に必要なもの

エンコード コマンドのオプション
エンコード コマンドのオプションオプション
zipPath説明
checksumエンコード対象のzipファイルのパス(必須)
--keyzipファイルのチェックサム(必須) - zipコマンドから取得する
--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. あなたのストレージにアップロードします: アップロードする暗号化された 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 での暗号化

「例 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またはトークンベースの認証を使用する
  • Webベースのアプリでは適切なCORSヘッダーを実装する

暗号化

暗号化
  • 敏感なバンドルを常にCapgo暗号化ツールを使用して暗号化する
  • 暗号化キーを安全に保存し、定期的にローテートする
  • すべてのバンドルURLにHTTPSを使用する(モバイルおよびElectronアプリでは必須)
  • アクセスログを監視して不正なダウンロードパターンを検出する
  • 失敗したバンドルダウンロードのアラートを設定する
  • ストレージ権限を定期的に検証する

トラブルシューティング

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

一般的な問題

「一般的な問題」

ダウンロードが行われていない:

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

暗号化エラー:

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

S3 アップロードエラー:

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

デバッグ コマンド

デバッグ コマンド

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

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

バンドル完整性を検証:

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

カスタムストレージから続ける カスタムストレージから続ける カスタムストレージを使用している場合 カスタムストレージ セキュリティとコンプライアンスを計画するために、カスタムストレージを 適合性 適合性の実装詳細について Capgo セキュリティ スキャナー Capgo セキュリティ スキャナーの製品ワークフローについて Capgo セキュリティ Capgo セキュリティの製品ワークフローについて Capgo トラスト センター Capgo トラスト センターの製品ワークフローについて