Comportamento strano con Digital Ocean Spaces/S3 e molte regole CORS duplicate per `example.com`

Ho riscontrato questo errore durante un recente bootstrap. Sto usando 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.", "Attempting to apply BACKUP_DIRECT_UPLOAD S3 CORS ruleset in bucket pfaffmanager."]

C’è qualcosa che potrebbe spiegare questo e che abbia una soluzione?

Hmm. Ho guardato le impostazioni e c’erano un bel po’ di regole CORS apparentemente identiche. Ne ho cancellata una e ha cancellato tutte le altre. Questo è un server di staging su cui ho eseguito un sacco (o forse un centinaio, comunque?) di aggiornamenti, quindi forse questo potrebbe succedere a tutti quelli che usano Digital Ocean, ma per la maggior parte delle persone ci vorrebbero 10 anni piuttosto che 8 mesi.

Dopo aver cancellato le regole CORS, il bootstrap successivo è andato a buon fine e c’erano poi 2 regole CORS nelle impostazioni per il bucket degli spazi. Ma guarda, sembra che le regole siano impostate per example.com. :man_shrugging:

Un altro bucket in AMS3 che sono sicuro di aver avviato parecchie volte ha 3 regole come quella sopra. Tutte per example.com. Ho controllato app.yml per vedere se stavo facendo qualcosa di stupido (e se lo stessi facendo, allora avrebbe senso che l’avessi fatto nello stesso modo in un sacco di posti), ma non c’è example.com nello yml.

Al momento della ricostruzione, vedo questo nei log:


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.

Ho cercato nel codice in posti come s3_backup_store.rb per example.com e non riesco a trovare una spiegazione.

3 Mi Piace

Sembra che dovremmo consigliare DISCOURSE_S3_INSTALL_CORS_RULE: false per DO come già facciamo per GCP e BackBlaze in Utilizzo dello storage di oggetti per i caricamenti (S3 e cloni) :thinking:

4 Mi Piace

Ciao,

Mi scuso per aver ripreso questo argomento, ma penso di aver avuto un problema simile qualche giorno fa.

La mia configurazione:

Digital Ocean Spaces con s3:upload_assets e s3:expire_missing_assets.
CDN - Bunny

Sembra che ogni ricostruzione o aggiornamento dell’amministratore quando carica gli asset generi una nuova regola CORS. In realtà duplica la regola originale. Sfortunatamente non ho copiato il messaggio di errore della console, ma era qualcosa prima di caricare gli asset - raggiunto il numero massimo di 100 regole CORS, quindi sono andato su Digital Ocean e ho controllato le regole e sì, erano 100. :smiley: Quindi ho fatto lo stesso di @pfaffman, ne ho rimossa una e ha rimosso tutte le regole. Dopo questo, gli asset sono stati caricati con successo alla ricostruzione.

Quando l’ho configurato ho seguito queste istruzioni qui: Configure an S3 compatible object storage provider for uploads che non contiene ancora questa riga.

Aggiungere questa riga impedirà la generazione di regole CORS duplicate? Grazie :slightly_smiling_face:

Ho aggiornato l’altro argomento, quindi spero che non accada agli utenti in futuro! Grazie per averlo segnalato.

2 Mi Piace