Zum Inhalt springen

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.

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.

Der einfachste Weg, benutzerdefinierten Speicher zu verwenden, besteht darin, Ihr Bundle auf eine öffentlich zugängliche URL hochzuladen und diese URL Capgo bereitzustellen.

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

Dieser Befehl weist Capgo an, auf das Bundle unter der angegebenen URL zu verweisen, anstatt es in Capgos Cloud-Speicher hochzuladen.

Für sicheren externen Speicher können Sie Ihr Bundle verschlüsseln und die Entschlüsselungsschlüssel bereitstellen:

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

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.

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

Für S3-kompatible Dienste oder benutzerdefinierte Endpunkte:

Terminal-Fenster
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ützt
ParameterBeschreibungErforderlich
--s3-regionAWS-Region für Ihren S3-BucketJa
--s3-apikeyS3-Zugriffsschlüssel-IDJa
--s3-apisecretS3-GeheimzugriffsschlüsselJa
--s3-bucket-nameName Ihres S3-BucketsJa
--s3-endpointBenutzerdefinierte S3-Endpunkt-URLNein
--s3-portPort für S3-EndpunktNein
--no-s3-sslSSL für S3-Upload deaktivierenNein

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.

Erstellen Sie zunächst eine Zip-Datei Ihres App-Bundles:

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

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

Terminal-Fenster
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
OptionBeschreibung
--pathPfad zum zu zippenden Ordner (Standard ist webDir aus capacitor.config)
--bundleBundle-Versionsnummer zur Benennung der Zip-Datei
--nameBenutzerdefinierter Name für die Zip-Datei
--jsonErgebnisse im JSON-Format ausgeben (enthält Prüfsumme)
--no-code-checkPrüfung auf notifyAppReady()-Aufruf und Index-Datei überspringen
--key-v2Verschlüsselung v2 verwenden
--package-jsonPfade 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:

Terminal-Fenster
# Verwendung des lokalen Standardschlüssels
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
# Verwendung einer benutzerdefinierten Schlüsseldatei
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key ./path/to/.capgo_key_v2
# Verwendung von Schlüsseldaten direkt
npx @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.

OptionBeschreibung
zipPathPfad zur zu verschlüsselnden Zip-Datei (erforderlich)
checksumPrüfsumme der Zip-Datei (erforderlich) - aus Zip-Befehl erhalten
--keyBenutzerdefinierter Pfad für privaten Signaturschlüssel (optional, verwendet lokalen Schlüssel standardmäßig)
--key-dataPrivate Signaturschlüsseldaten direkt (optional)
--jsonErgebnisse im JSON-Format ausgeben

Beispiel 1: Externe URL mit Verschlüsselung

Section titled “Beispiel 1: Externe URL mit Verschlüsselung”
  1. Erstellen Sie Ihre App:

    Terminal-Fenster
    npm run build
  2. Erstellen Sie ein Zip-Bundle:

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

    Notieren Sie sich die von diesem Befehl zurückgegebene Prüfsumme.

  3. Verschlüsseln Sie das Bundle:

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

    Notieren Sie sich den ivSessionKey aus der Ausgabe.

  4. In Ihren Speicher hochladen: Laden Sie die verschlüsselte Zip-Datei zu Ihrem Hosting-Dienst hoch.

  5. 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
  1. Erstellen Sie Ihre App:

    Terminal-Fenster
    npm run build
  2. 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
  1. Erstellen und zippen:

    Terminal-Fenster
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Bundle verschlüsseln:

    Terminal-Fenster
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. 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

Bei Verwendung von benutzerdefiniertem Speicher sollten Sie diese Sicherheits-Best-Practices beachten:

  • 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ü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)
  • Ü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

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 ivSessionKey mit 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

Bundle-Status überprüfen:

Terminal-Fenster
npx @capgo/cli@latest app debug

Bundle-Integrität überprüfen:

Terminal-Fenster
npx @capgo/cli@latest bundle list
  • 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