Lompat ke konten

Penyimpanan Kustom

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.

Penyimpanan khusus di Capgo bekerja dengan mengunggah bundle Anda ke lokasi eksternal dan menyediakan Capgo dengan URL untuk mengaksesnya. Capgo SDK akan kemudian mengunduh update secara langsung dari lokasi penyimpanan khusus Anda daripada penyimpanan awan Capgo’s default.

Cara termudah untuk menggunakan penyimpanan khusus adalah dengan mengunggah bundle Anda ke URL yang dapat diakses publik dan menyediakan URL tersebut kepada Capgo.

Jendela Terminal
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip

Perintah ini menginstruksikan Capgo untuk mengacu pada bundle di URL yang ditentukan daripada mengunggahnya ke penyimpanan awan Capgo’s.

Untuk penyimpanan eksternal yang aman, Anda dapat mengenkripsi bundle Anda dan menyediakan kunci dekripsi:

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

Capgo provides built-in support for Amazon S3 and S3-compatible storage services. The CLI can automatically upload your bundle to S3 and configure Capgo to use the S3 URL.

__CAPGO_KEEP_1__ dapat secara otomatis mengunggah bundle Anda ke S3 dan mengonfigurasi __CAPGO_KEEP_2__ untuk menggunakan URL S3.

Pilihan Unggah S3
Bagian berjudul “Pilihan Unggah 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

Salin ke clipboard

Konfigurasi S3 Lengkap

Bagian berjudul “Konfigurasi S3 Lengkap”

Untuk layanan S3 yang kompatibel atau endpoint kustom:
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

Salin ke clipboard

Parameter Konfigurasi S3
ParameterDeskripsiWajib
--s3-region__CAPGO_KEEP_0__ untuk region AWS Anda untuk bucket S3Ya
--s3-apikey__CAPGO_KEEP_0__ ID kunci akses S3 AndaYa
--s3-apisecret__CAPGO_KEEP_0__ kunci rahasia S3 AndaYa
--s3-bucket-name__CAPGO_KEEP_0__ nama bucket S3 AndaYa
--s3-endpoint__CAPGO_KEEP_0__ URL endpoint S3 kustom AndaTidak
--s3-portPort untuk endpoint S3Tidak
--no-s3-sslMatikan SSL untuk unggah S3Tidak

Saat menggunakan penyimpanan khusus, terutama dengan pengamanan, Anda perlu mempersiapkan paket Anda dengan benar. Hal ini melibatkan pembuatan file zip dan opsionalnya mengenkripsi file tersebut.

Pertama-tama, buatlah file zip dari paket aplikasi Anda:

Tampilan jendela terminal
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

Perintah zip akan mengembalikan checksum dari file zip. Anda dapat menggunakan checksum ini untuk mengenkripsi file zip jika diperlukan. Gunakan --json untuk mendapatkan output terstruktur termasuk checksum.

Jendela Terminal
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
OpsiDeskripsi
--pathJalur ke folder untuk dizip (default ke webDir dari capacitor.config)
--bundleNomor versi bundel untuk menamai file zip
--nameNama kustom untuk file zip
--jsonHasil output dalam format JSON (termasuk ceklis)
--no-code-checkLepaskan pengecekan untuk panggilan notifyAppReady() dan file index
--key-v2Gunakan enkripsi v2
--package-jsonJalur ke file package.json untuk repositori monorepos (dipisahkan koma)

Untuk keamanan yang lebih tinggi, enkripsi bundle zip Anda sebelum mengunggah:

Jendela terminal
# 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"

Parameter ini diperlukan dan harus merupakan ceklis dari file zip Anda. Anda dapat mendapatkan ceklis dari output perintah zip (gunakan CHECKSUM option untuk output terstruktur). --json The

Dengan default, perintah enkripsi akan menggunakan kunci pribadi lokal Anda. Anda dapat menentukan kunci khusus menggunakan --key atau --key-data opsi.

Perintah enkripsi akan mengembalikan ivSessionKey yang diperlukan untuk unggah atau dekripsi.

OpsiDeskripsi
zipPathJalur ke file zip untuk dienkripsi (wajib)
checksumChecksum dari file zip (wajib) - dapatkan dari perintah zip
--keyJalur khusus untuk kunci pribadi (opsional, menggunakan kunci lokal secara default)
--key-dataData kunci pribadi disampaikan secara langsung (opsional)
--jsonHasil keluaran dalam format JSON
  1. Buat aplikasi Anda:

    Jendela terminal
    npm run build
  2. Buat bundle zip:

    Jendela terminal
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --bundle 1.2.3

    Perhatikan checksum yang dikembalikan oleh perintah ini.

  3. Enkripsi bundle:

    Jendela terminal
    npx @capgo/cli@latest bundle encrypt ./com.example.app-1.2.3.zip CHECKSUM_FROM_STEP_2

    Perhatikan ivSessionKey dari hasilnya.

  4. Unggah ke penyimpanan Anda: Unggah file zip yang dienkripsi ke layanan hosting Anda.

  5. Daftar dengan Capgo:

    Jendela Terminal
    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. Buat aplikasi Anda:

    Jendela Terminal
    npm run build
  2. Unggah langsung ke S3:

    Jendela Terminal
    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. Buat dan zip:

    Jendela Terminal
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Enkripsi bundle:

    Jendela Terminal
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. Unggah ke S3 dengan enkripsi:

    Jendela Terminal
    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

Ketika menggunakan penyimpanan kustom, pertimbangkan praktik keamanan terbaik berikut:

  • Pastikan URL penyimpanan Anda dapat diakses oleh pengguna aplikasi Anda tetapi tidak dapat ditemukan secara publik
  • Pakai URL yang ditandatangani atau otentikasi berbasis token ketika memungkinkan
  • Implementasikan header CORS yang tepat untuk aplikasi berbasis web
  • Selalu enkripsi bundle sensitif menggunakan alat enkripsi Capgo
  • Simpan kunci enkripsi dengan aman dan rotasinya secara berkala
  • Pakai HTTPS untuk semua URL bundle (diperlukan untuk aplikasi mobile dan Electron)
  • Mengawasi log akses untuk mendeteksi pola download yang tidak biasa
  • Konfigurasi peringatan untuk download bundle yang gagal
  • Mengaudit secara teratur izin penyimpanan

Bundle tidak terunduh:

  • Pastikan URL dapat diakses secara publik dan menggunakan HTTPS (diperlukan untuk aplikasi mobile dan Electron)
  • Cek header CORS untuk aplikasi web
  • Pastikan format bundel benar

Error-encryptasi:

  • Pastikan ivSessionKey cocok dengan bundel yang dienkripsi
  • Periksa apakah bundel telah dienkripsi dengan kunci yang benar
  • Pastikan penggunaan enkripsi v2 untuk bundel baru

Gagal unggah ke S3:

  • Periksa kredential dan izin S3 Anda
  • Periksa kebijakan wadah dan konfigurasi CORS
  • Pastikan wilayah yang ditentukan benar

Periksa status bundel:

Jendela terminal
npx @capgo/cli@latest app debug

Verifikasi integritas bundel:

Jendela terminal
npx @capgo/cli@latest bundle list
  • Pelajari tentang Saluran untuk mengelola berbagai lingkungan pengembangan
  • Eksplorasi Perbarui perilaku untuk mengatur bagaimana perbarui diterapkan
  • Konfigurasi Pengintegrasian CI/CD untuk otomatisasi alur kerja penyimpanan kustom Anda

Jika Anda menggunakan Penyimpanan Kustom untuk merencanakan keamanan dan kewenangan, hubungkannya dengan Enkripsi untuk detail implementasi di Enkripsi, Kepatuhan untuk detail implementasi di Kepatuhan, Capgo Scanner Keamanan untuk alur kerja produk di Capgo Scanner Keamanan, Capgo Keamanan untuk alur kerja produk di Capgo Keamanan, dan Capgo Pusat Kepercayaan untuk alur kerja produk di Capgo Pusat Kepercayaan.