Lebihkan ke konten

Penyimpanan Kustom

Capgo mendukung solusi penyimpanan kustom untuk paket aplikasi Anda, memungkinkan Anda untuk menghosting update Anda di infrastruktur milik sendiri atau layanan penyimpanan pihak ketiga. Hal ini sangat berguna bagi organisasi dengan kebutuhan keamanan tertentu, kebutuhan kompatibilitas, atau infrastruktur penyimpanan yang sudah ada.

Penyimpanan kustom di Capgo bekerja dengan mengunggah paket Anda ke lokasi luar dan memberikan Capgo dengan URL untuk mengaksesnya. Capgo SDK akan mengunduh update secara langsung dari lokasi penyimpanan kustom Anda daripada Capgo’s penyimpanan awan default.

Metode penyimpanan kustom yang paling sederhana adalah dengan mengunggah bundle Anda ke URL yang dapat diakses publik dan memberikan URL tersebut ke Capgo.

Tampilan 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.

Untuk penyimpanan eksternal yang aman, Anda dapat mengenkripsi bundle 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 menyediakan dukungan bawaan untuk Amazon S3 dan layanan penyimpanan S3 yang kompatibel. CLI dapat mengunggah bundle secara otomatis ke S3 dan mengonfigurasi Capgo untuk menggunakan URL S3.

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

Untuk layanan S3 yang kompatibel atau endpoint kustom:

Jendela terminal
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
ParameterDeskripsiWajib
--s3-regionWilayah AWS untuk bucket S3 AndaYa
--s3-apikeyKunci Akses S3Ya
--s3-apisecretKunci Akses S3Ya
--s3-bucket-nameNama S3 bucket AndaYa
--s3-endpointURL endpoint S3 kustomTidak
--s3-portPort untuk endpoint S3Tidak
--no-s3-sslNonaktifkan SSL untuk unggah S3No

Untuk penyimpanan khusus, terutama dengan pengenkripsi, Anda perlu mempersiapkan paket dengan benar. Ini melibatkan pembuatan file zip dan pengenkripsiannya secara opsional.

Judul Bagian “Langkah 1: Buat Paket Zip”

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

The zip command will return the checksum of the zip file. You can use this checksum to encrypt the zip file if needed. Use the --json Opsi 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
PilihanDeskripsi
--pathJalur ke folder untuk mengompres (default ke webDir dari capacitor.config)
--bundleNomor versi bundle untuk menamai file zip
--nameNama kustom untuk file zip
--jsonHasil output dalam format JSON (termasuk cekkom)
--no-code-checkLebihkan pengecekan panggilan notifyAppReady() dan file index
--key-v2Pakai enkripsi v2
--package-jsonJalur ke file package.json untuk repositori monorepos (dipisahkan koma)

Untuk keamanan yang lebih tinggi, enkripsi paket 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"

The CHECKSUM parameter diperlukan dan harus merupakan checksum dari file zip Anda. Anda dapat mendapatkan checksum dari output perintah zip (gunakan) --json Opsi untuk output terstruktur).

By default, perintah enkripsi akan menggunakan kunci pribadi Anda secara lokal. Anda dapat menentukan kunci yang disesuaikan menggunakan --key or --key-data options.

enkripsi perintah akan mengembalikan ivSessionKey perlu 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 tanda tangan pribadi (opsional, menggunakan kunci lokal secara default)
--key-dataData kunci tanda tangan pribadi secara langsung (opsional)
--jsonHasil output dalam format JSON

Contoh 1: URL Eksternal dengan Enkripsi

Judul bagian “Contoh 1: URL Eksternal dengan Enkripsi”
  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 terenkripsi 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. Bangun aplikasi Anda:

    Tampilan jendela terminal
    npm run build
  2. Unggah langsung ke S3:

    Tampilan 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. Bangun dan zip:

    Tampilan 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 ini:

  • Pastikan URL penyimpanan Anda dapat diakses oleh pengguna aplikasi tetapi tidak dapat ditemukan secara publik
  • Pilih 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 teratur
  • Pilih HTTPS untuk semua URL bundle (diperlukan untuk aplikasi mobile dan Electron)
  • Pantau log akses untuk mendeteksi pola download yang tidak biasa
  • Konfigurasi peringatan untuk download bundle gagal
  • Periksa izin penyimpanan secara teratur

Bundle tidak terunduh:

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

Error Enkripsi:

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

Gagal unggah S3:

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

Periksa status bundle:

Jendela Terminal
npx @capgo/cli@latest app debug

Verifikasi integritas bundle:

Jendela Terminal
npx @capgo/cli@latest bundle list
  • Apa itu Saluran untuk mengelola lingkungan pengembangan yang berbeda
  • Jelajahi Perilaku Update untuk mengatur cara pembaruan diterapkan
  • Konfigurasi Integrasi CI/CD untuk mengotomatisasi alur kerja penyimpanan kustom Anda

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