Ich werde versuchen, die Antworten auf meine Fragen zusammenzufassen:
- Kollidieren die Web-UI und die ENV-Variable?
- Wann sollen die Assets in den Bucket hochgeladen werden?
Durch Hinzufügen dieses Snippets zu app.yml im Hook-Bereich wird es nachafter_assets_precompile(während des Rebuilds der App) hochgeladen.
- Wie kann ich das debuggen? Ich sehe keine Fehler in den Logs.
Durch Ausführen von:
cd /var/discourse
sudo ./launcher enter app
sudo -E -u discourse bundle exec rake s3:upload_assets --trace
- Ist es möglich, einen Unterordner eines Buckets in der Konfiguration festzulegen?
Muss ich wirklich separate Buckets für Uploads und Backups verwenden?
Nein, das müssen Sie nicht, aber es ist normalerweise der einfachste Weg, dies einzurichten. Im Wesentlichen müssen Sie entweder zwei verschiedene Buckets oder ein Präfix für den Backup-Bucket verwenden. Die folgenden Kombinationen funktionieren beispielsweise:
- Unterschiedliche Buckets
- s3_upload_bucket:
your-uploads-bucket- s3_backup_bucket:
your-backups-bucket
- Unterschiedliche Präfixe
- s3_upload_bucket:
your-uploads-bucket/uploads- s3_backup_bucket:
your-uploads-bucket/backups
(Organizing objects using prefixes - Amazon Simple Storage Service) Sie können Präfixe verwenden, um die Daten zu organisieren, die Sie in Amazon S3 Buckets speichern. Ein Präfix ist eine Zeichenkette am Anfang des Objektschlüsselnamens. Ein Präfix kann jede Länge haben, vorbehaltlich der maximalen Länge des Objektschlüsselnamens (1.024 Bytes). Sie können sich Präfixe als eine Möglichkeit vorstellen, Ihre Daten ähnlich wie Verzeichnisse zu organisieren. Präfixe sind jedoch keine Verzeichnisse.
- Sobald dies funktioniert, werden die zuvor hochgeladenen Bilder in den Bucket übertragen? Wie sehen die URLs der zuvor hochgeladenen Bilder aus, wenn ich sie neu backe?
Ich habe S3-Uploads in meiner Discourse-Instanz aktiviert (die schon eine Weile läuft); was mache ich mit den vorhandenen lokalen Uploads?
Um Ihre vorhandenen Uploads nach S3 zu migrieren, können Sie ein paar Rake-Tasks ausführen. Um dies durchzuführen, benötigen Sie SSH-Zugriff, Root-Berechtigungen und müssen sich in der Discourse-App befinden (gemäß Administrative Bulk Operations). Oh, und Sie müssen einige Umgebungsvariablen in app.yml festlegen. Nichts für schwache Nerven.
Sobald Sie all das getan haben, sind Sie bereit für die Rake-Tasks:
rake uploads:migrate_to_s3 rake posts:rebakeSobald diese abgeschlossen sind (und die Uploads gut funktionieren), müssen Sie keine Uploads mehr in Ihre Backups aufnehmen. Und als Bonus können Sie im Katastrophenfall ein Backup von der Kommandozeile wiederherstellen (behalten Sie einfach eine Kopie von app.yml irgendwo auf).