Custom Storage
Capgo unterstützt benutzerdefinierte Speicherlösungen für Ihre App-Bundles, sodass Sie Ihre Updates auf Ihrer eigenen Infrastruktur oder Drittspeicherdiensten hosten können. Dies ist besonders nützlich für Organisationen mit spezifischen Sicherheitsanforderungen, Compliance-Anforderungen oder bestehender Speicherinfrastruktur.
Übersicht
Section titled “Übersicht”Custom Storage in Capgo funktioniert durch Hochladen Ihres Bundles an einen externen Standort und Bereitstellung der URL für Capgo, um darauf zuzugreifen. Das Capgo SDK lädt dann Updates direkt von Ihrem benutzerdefinierten Speicherort herunter anstelle von Capgos Standard-Cloud-Speicher.
Externe URL-Upload
Section titled “Externe URL-Upload”Der einfachste Weg, benutzerdefinierten Speicher zu verwenden, besteht darin, Ihr Bundle auf eine öffentlich zugängliche URL hochzuladen und diese URL Capgo bereitzustellen.
Basis Externe URL-Upload
Section titled “Basis Externe URL-Upload”npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zipDieser Befehl weist Capgo an, auf das Bundle unter der angegebenen URL zu verweisen, anstatt es in Capgos Cloud-Speicher hochzuladen.
Mit Verschlüsselung
Section titled “Mit Verschlüsselung”Für sicheren externen Speicher können Sie Ihr Bundle verschlüsseln und die Entschlüsselungsschlüssel bereitstellen:
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip --iv-session-key YOUR_IV_SESSION_KEYS3-Integration
Section titled “S3-Integration”Capgo bietet integrierte Unterstützung für Amazon S3 und S3-kompatible Speicherdienste. Die CLI kann Ihr Bundle automatisch zu S3 hochladen und Capgo konfigurieren, die S3-URL zu verwenden.
S3 Upload-Optionen
Section titled “S3 Upload-Optionen”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-nameVollständige S3-Konfiguration
Section titled “Vollständige S3-Konfiguration”Für S3-kompatible Dienste oder benutzerdefinierte Endpunkte:
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 # Nur wenn Ihr Endpunkt SSL nicht unterstütztS3-Konfigurationsparameter
Section titled “S3-Konfigurationsparameter”| Parameter | Beschreibung | Erforderlich |
|---|---|---|
--s3-region | AWS-Region für Ihren S3-Bucket | Ja |
--s3-apikey | S3-Zugriffsschlüssel-ID | Ja |
--s3-apisecret | S3-Geheimzugriffsschlüssel | Ja |
--s3-bucket-name | Name Ihres S3-Buckets | Ja |
--s3-endpoint | Benutzerdefinierte S3-Endpunkt-URL | Nein |
--s3-port | Port für S3-Endpunkt | Nein |
--no-s3-ssl | SSL für S3-Upload deaktivieren | Nein |
Bundle-Vorbereitung und Verschlüsselung
Section titled “Bundle-Vorbereitung und Verschlüsselung”Bei Verwendung von benutzerdefiniertem Speicher, insbesondere mit Verschlüsselung, müssen Sie Ihre Bundles ordnungsgemäß vorbereiten. Dies beinhaltet das Erstellen einer Zip-Datei und optional deren Verschlüsselung.
Schritt 1: Ein Zip-Bundle erstellen
Section titled “Schritt 1: Ein Zip-Bundle erstellen”Erstellen Sie zunächst eine Zip-Datei Ihres App-Bundles:
npx @capgo/cli@latest bundle zip com.example.app --path ./distDer Zip-Befehl gibt die Prüfsumme der Zip-Datei zurück. Sie können diese Prüfsumme verwenden, um die Zip-Datei bei Bedarf zu verschlüsseln. Verwenden Sie die Option --json, um strukturierte Ausgabe einschließlich der Prüfsumme zu erhalten.
Zip-Befehlsoptionen
Section titled “Zip-Befehlsoptionen”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| Option | Beschreibung |
|---|---|
--path | Pfad zum zu zippenden Ordner (Standard ist webDir aus capacitor.config) |
--bundle | Bundle-Versionsnummer zur Benennung der Zip-Datei |
--name | Benutzerdefinierter Name für die Zip-Datei |
--json | Ergebnisse im JSON-Format ausgeben (enthält Prüfsumme) |
--no-code-check | Prüfung auf notifyAppReady()-Aufruf und Index-Datei überspringen |
--key-v2 | Verschlüsselung v2 verwenden |
--package-json | Pfade zu package.json-Dateien für Monorepos (kommagetrennt) |
Schritt 2: Bundle verschlüsseln (Optional)
Section titled “Schritt 2: Bundle verschlüsseln (Optional)”Für erhöhte Sicherheit verschlüsseln Sie Ihr Zip-Bundle vor dem Hochladen:
# Verwendung des lokalen Standardschlüsselsnpx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
# Verwendung einer benutzerdefinierten Schlüsseldateinpx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key ./path/to/.capgo_key_v2
# Verwendung von Schlüsseldaten direktnpx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key-data "PRIVATE_KEY_CONTENT"Der Parameter CHECKSUM ist erforderlich und sollte die Prüfsumme Ihrer Zip-Datei sein. Sie können die Prüfsumme aus der Ausgabe des Zip-Befehls erhalten (verwenden Sie die Option --json für strukturierte Ausgabe).
Standardmäßig verwendet der encrypt-Befehl Ihren lokalen privaten Signaturschlüssel. Sie können einen benutzerdefinierten Schlüssel mit den Optionen --key oder --key-data angeben.
Der encrypt-Befehl gibt den für Upload oder Entschlüsselung benötigten ivSessionKey zurück.
Verschlüsselungs-Befehlsoptionen
Section titled “Verschlüsselungs-Befehlsoptionen”| Option | Beschreibung |
|---|---|
zipPath | Pfad zur zu verschlüsselnden Zip-Datei (erforderlich) |
checksum | Prüfsumme der Zip-Datei (erforderlich) - aus Zip-Befehl erhalten |
--key | Benutzerdefinierter Pfad für privaten Signaturschlüssel (optional, verwendet lokalen Schlüssel standardmäßig) |
--key-data | Private Signaturschlüsseldaten direkt (optional) |
--json | Ergebnisse im JSON-Format ausgeben |
Vollständige Workflow-Beispiele
Section titled “Vollständige Workflow-Beispiele”Beispiel 1: Externe URL mit Verschlüsselung
Section titled “Beispiel 1: Externe URL mit Verschlüsselung”-
Erstellen Sie Ihre App:
Terminal-Fenster npm run build -
Erstellen Sie ein Zip-Bundle:
Terminal-Fenster npx @capgo/cli@latest bundle zip com.example.app --path ./dist --bundle 1.2.3Notieren Sie sich die von diesem Befehl zurückgegebene Prüfsumme.
-
Verschlüsseln Sie das Bundle:
Terminal-Fenster npx @capgo/cli@latest bundle encrypt ./com.example.app-1.2.3.zip CHECKSUM_FROM_STEP_2Notieren Sie sich den
ivSessionKeyaus der Ausgabe. -
In Ihren Speicher hochladen: Laden Sie die verschlüsselte Zip-Datei zu Ihrem Hosting-Dienst hoch.
-
Bei Capgo registrieren:
Terminal-Fenster 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
Beispiel 2: Direkter S3-Upload
Section titled “Beispiel 2: Direkter S3-Upload”-
Erstellen Sie Ihre App:
Terminal-Fenster npm run build -
Direkt zu S3 hochladen:
Terminal-Fenster 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
Beispiel 3: S3 mit Verschlüsselung
Section titled “Beispiel 3: S3 mit Verschlüsselung”-
Erstellen und zippen:
Terminal-Fenster npm run buildnpx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Bundle verschlüsseln:
Terminal-Fenster npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM -
Zu S3 mit Verschlüsselung hochladen:
Terminal-Fenster 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
Sicherheitsüberlegungen
Section titled “Sicherheitsüberlegungen”Bei Verwendung von benutzerdefiniertem Speicher sollten Sie diese Sicherheits-Best-Practices beachten:
Zugriffskontrolle
Section titled “Zugriffskontrolle”- Stellen Sie sicher, dass Ihre Speicher-URLs für Ihre App-Benutzer zugänglich, aber nicht öffentlich auffindbar sind
- Verwenden Sie signierte URLs oder tokenbasierte Authentifizierung, wenn möglich
- Implementieren Sie ordnungsgemäße CORS-Header für webbasierte Apps
Verschlüsselung
Section titled “Verschlüsselung”- Verschlüsseln Sie immer sensible Bundles mit den Capgo-Verschlüsselungstools
- Speichern Sie Verschlüsselungsschlüssel sicher und rotieren Sie sie regelmäßig
- Verwenden Sie HTTPS für alle Bundle-URLs (erforderlich für iOS und Android)
Überwachung
Section titled “Überwachung”- Überwachen Sie Zugriffsprotokolle, um ungewöhnliche Download-Muster zu erkennen
- Richten Sie Benachrichtigungen für fehlgeschlagene Bundle-Downloads ein
- Überprüfen Sie regelmäßig Ihre Speicherberechtigungen
Fehlerbehebung
Section titled “Fehlerbehebung”Häufige Probleme
Section titled “Häufige Probleme”Bundle wird nicht heruntergeladen:
- Überprüfen Sie, ob die URL öffentlich zugänglich ist und HTTPS verwendet (erforderlich für iOS und Android)
- Prüfen Sie CORS-Header für Web-Apps
- Stellen Sie sicher, dass das Bundle-Format korrekt ist
Verschlüsselungsfehler:
- Überprüfen Sie, ob der
ivSessionKeymit dem verschlüsselten Bundle übereinstimmt - Prüfen Sie, ob das Bundle mit dem richtigen Schlüssel verschlüsselt wurde
- Stellen Sie sicher, dass Verschlüsselung v2 für neue Bundles verwendet wird
S3-Upload-Fehler:
- Überprüfen Sie Ihre S3-Anmeldeinformationen und Berechtigungen
- Prüfen Sie Bucket-Richtlinien und CORS-Konfiguration
- Stellen Sie sicher, dass die angegebene Region korrekt ist
Debug-Befehle
Section titled “Debug-Befehle”Bundle-Status überprüfen:
npx @capgo/cli@latest app debugBundle-Integrität überprüfen:
npx @capgo/cli@latest bundle listNächste Schritte
Section titled “Nächste Schritte”- Erfahren Sie mehr über Channels, um verschiedene Bereitstellungsumgebungen zu verwalten
- Erkunden Sie Update Behavior, um anzupassen, wie Updates angewendet werden
- Richten Sie CI/CD Integration ein, um Ihren benutzerdefinierten Speicher-Workflow zu automatisieren