Seltsames Verhalten mit Digital Ocean Spaces/S3 und vielen doppelten CORS-Regeln für `example.com`

Ich habe diesen Fehler bei einem kürzlichen Bootstrap erhalten. Ich verwende Digital Ocean in SFO3.

"Tasks: TOP => s3:upload_assets => s3:ensure_cors_rules", "(See full trace by running
 task with --trace)", "I, [2021-12-16T21:19:05.748497 #1]  INFO -- : Installing CORS rules...", "Attempting to apply ASSETS S3 CORS ruleset in bucket pfaffmanager.", "At
tempting to apply BACKUP_DIRECT_UPLOAD S3 CORS ruleset in bucket pfaffmanager."]

Gibt es etwas, das dies erklären könnte und eine Lösung hat?

Hmm. Ich habe mir die Einstellungen angesehen und es gab eine Reihe von anscheinend identischen CORS-Regeln. Ich habe eine davon gelöscht und sie hat alle gelöscht. Dies ist ein Staging-Server, auf dem ich eine Billion (oder vielleicht hundert?) Upgrades durchgeführt habe, sodass dies irgendwann bei jedem auftreten könnte, der Digital Ocean verwendet, aber für die meisten Leute würde es eher 10 Jahre als 8 Monate dauern.

Nachdem die CORS-Regeln gelöscht wurden, war der nächste Bootstrap erfolgreich und es gab dann 2 CORS-Regeln in den Einstellungen für den Spaces-Bucket. Aber schauen Sie mal – es scheint, dass die Regeln für example.com. gesetzt sind :man_shrugging:

Ein anderer Bucket in AMS3, bei dem ich sicher bin, dass ich ihn schon ziemlich oft gebootstrappt habe, hat 3 Regeln wie die obige. Alle für example.com. Ich habe app.yml überprüft, um zu sehen, ob ich etwas Dummes mache (und wenn ja, dann würde es Sinn machen, dass ich es an vielen Stellen auf die gleiche Weise gemacht hätte), aber es gibt kein example.com im YML.

Beim erneuten Erstellen sehe ich dies in den Protokollen:


I, [2021-12-16T21:46:58.038151 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
I, [2021-12-16T21:47:39.039145 #1]  INFO -- : Installing CORS rules...
Attempting to apply ASSETS S3 CORS ruleset in bucket pfaffmanager.
Attempting to apply BACKUP_DIRECT_UPLOAD S3 CORS ruleset in bucket pfaffmanager.
Assets rules status: rules_applied.
Backup rules status: rules_applied.
Direct upload rules status: rules_skipped_from_settings.

Ich habe im Code an Stellen wie s3_backup_store.rb nach example.com gesucht und kann keine Erklärung finden.

3 „Gefällt mir“

Es sieht so aus, als sollten wir DISCOURSE_S3_INSTALL_CORS_RULE: false für DO empfehlen, so wie wir es bereits für GCP und BackBlaze in Verwendung von Object Storage für Uploads (S3 & Klone) tun :thinking:

4 „Gefällt mir“

Hallo,

Entschuldigung, dass ich dieses Thema wieder aufgreife, aber ich glaube, ich hatte vor ein paar Tagen ein ähnliches Problem.

Meine Konfiguration:

Digital Ocean Spaces mit s3:upload_assets und s3:expire_missing_assets.
CDN - Bunny

Es scheint, dass jeder Rebuild oder jedes Admin-Update, wenn es Assets hochlädt, eine neue CORS-Regel generiert. Es dupliziert tatsächlich die ursprüngliche Regel. Leider habe ich die Konsolenfehlermeldung nicht kopiert, aber es war etwas vor dem Hochladen von Assets – die maximale Anzahl von 100 CORS-Regeln wurde erreicht, also ging ich zu Digital Ocean und überprüfte die Regeln und ja, das waren 100. :smiley: Also tat ich dasselbe wie @pfaffman, ich entfernte eine und es entfernte alle Regeln. Danach wurden die Assets beim Rebuild erfolgreich hochgeladen.

Als ich dies einrichtete, folgte ich dieser Anleitung hier: Configure an S3 compatible object storage provider for uploads, die diese Zeile noch nicht enthält.

Wird das Hinzufügen dieser Zeile das Duplizieren von CORS-Regeln stoppen? Danke :slightly_smiling_face:

Ich habe das andere Thema aktualisiert, hoffentlich wird es Benutzern in Zukunft nicht mehr passieren! Danke, dass Sie darauf hingewiesen haben.

2 „Gefällt mir“