Lompat ke konten

Penyimpanan Kustom

Capgo mendukung solusi penyimpanan kustom untuk paket aplikasi Anda, memungkinkan Anda untuk menghosting update Anda di infrastruktur 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 bundle Anda ke lokasi eksternal dan menyediakan Capgo dengan URL untuk mengaksesnya. Capgo SDK akan mengunduh pembaruan secara langsung dari lokasi penyimpanan kustom Anda daripada penyimpanan awan Capgo secara default.

Metode termudah untuk menggunakan penyimpanan kustom adalah dengan mengunggah bundle Anda ke URL yang dapat diakses publik dan menyediakan URL tersebut ke 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 paket di URL yang ditentukan daripada mengunggahnya ke penyimpanan awan Capgo.

Untuk penyimpanan eksternal yang aman, Anda dapat mengenkripsi paket 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 secara otomatis mengunggah bundle Anda 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 penyimpanan 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
ParameterDeskripsiDiperlukan
--s3-regionWilayah AWS untuk bucket S3 AndaYa
--s3-apikeyID kunci akses S3Ya
--s3-apisecretKunci rahasia akses S3Ya
--s3-bucket-nameNama bucket S3 AndaYa
--s3-endpointURL endpoint S3 kustomNo
--s3-portPort untuk endpoint S3No
--no-s3-sslNonaktifkan SSL untuk unggah S3No

Ketika 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:

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 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
OpsiDeskripsi
--pathJalur ke folder untuk diarsipkan (default ke webDir dari capacitor.config)
--bundleNomor versi bundle untuk menamai file zip
--nameNama file zip yang diatur sendiri
--jsonHasil keluaran dalam format JSON (termasuk cekapsum)
--no-code-checkLebihkan memeriksa panggilan notifyAppReady() dan file index
--key-v2Pakai enkripsi v2
--package-jsonJalur ke file package.json untuk repositori monorepo (dipisahkan koma)

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

Tampilan 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 cekapsum file zip Anda. Anda dapat mendapatkan cekapsum dari output perintah zip (gunakan CHECKSUM opsi untuk output struktur) --json Hasil keluaran dalam format JSON (termasuk cekapsum)

By default, the encrypt command will use your local private signing key. You can specify a custom key using the --key atau --key-data Perlu kunci pribadi yang disimpan secara lokal. Anda dapat menentukan kunci yang disesuaikan menggunakan

atau ivSessionKey Perlu kunci pribadi yang disimpan secara lokal. Anda dapat menentukan kunci yang disesuaikan menggunakan

Opsi EnkripsiOpsi
zipPathDeskripsi
checksumJalur ke file zip untuk dienkripsi (wajib)
--keyChecksum dari file zip (wajib) - dapatkan dari perintah zip
--key-dataData kunci pribadi secara langsung (opsional)
--jsonHasilnya dalam format JSON

Bab berjudul “Contoh Alur Kerja Lengkap”

Contoh 1: URL Eksternal dengan Enkripsi

Bab berjudul “Contoh 1: URL Eksternal dengan Enkripsi”

Bangun aplikasi Anda:
  1. Bangun 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 hasil dari output.

  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:

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

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

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

    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 \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_2 \
    --channel Production

Menggunakan penyimpanan kustom, pertimbangkan praktik keamanan ini:

  • 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)
  • Pantau log akses untuk mendeteksi pola download yang tidak biasa
  • Konfigurasi peringatan untuk gagal mengunduh bundle
  • Audit penyimpanan Anda secara teratur

Pengaturan

Troubleshooting

Judul Bagian “Pengaturan”

Masalah Umum

Judul Bagian “Masalah Umum”

  • Gagal mengunduh bundle:
  • Pastikan URL dapat diakses secara publik dan menggunakan HTTPS (diperlukan untuk aplikasi mobile dan Electron)
  • Pastikan format bundel benar

Kesalahan enkripsi:

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

Gagal unggah ke S3:

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

Periksa status paket:

Jendela terminal
npx @capgo/cli@latest app debug

Verifikasi integritas paket:

Jendela terminal
npx @capgo/cli@latest bundle list
  • Belajar tentang Saluran untuk mengelola lingkungan pengembangan yang berbeda
  • Kunjungi Perilaku Update Untuk mengatur cara update diterapkan
  • Konfigurasi Pengintegrasian CI/CD context: Halaman/area: Capgo Builder / produk halaman cloud native. Peran: Label UI singkat atau item navigasi. Kata kunci pesan `native_build_feature_ci_cd` (Native Build Feature Ci Cd).

Untuk otomatisasi alur kerja penyimpanan kustom Anda

Teruskan dari Penyimpanan Kustom

Judul bagian “Teruskan dari Penyimpanan Kustom” Jika Anda menggunakan Penyimpanan Kustom untuk merencanakan keamanan dan kewenangan, hubungkannya dengan Enkripsi Ketepatan untuk detail implementasi di Ketepatan Capgo Scanner Keamanan untuk alur produk di Capgo Scanner Keamanan Capgo Keamanan untuk alur produk di Capgo Keamanan, dan Capgo Pusat Kepercayaan untuk alur produk di Capgo Pusat Kepercayaan.