Comportamiento extraño con Digital Ocean Spaces/S3 y muchas reglas CORS duplicadas para `example.com`

Recibí este error en un bootstrap reciente. Estoy usando Digital Ocean en 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."]

¿Hay algo que pueda explicar esto y que tenga una solución?

Hmm. Miré la configuración y había un montón de reglas CORS aparentemente idénticas. Eliminé una de ellas y se eliminaron todas. Este es un servidor de staging en el que he realizado muchísimas (¿o tal vez un centenar, en fin?) actualizaciones, así que tal vez esto eventualmente le sucedería a todos los que usan Digital Ocean, pero para la mayoría de las personas tomaría más como 10 años que 8 meses.

Después de eliminar las reglas CORS, el siguiente bootstrap tuvo éxito y luego hubo 2 reglas CORS en la configuración para el bucket de espacios. Pero mira, parece que las reglas están configuradas para example.com. :man_shrugging:

Otro bucket en AMS3 que estoy seguro de que he iniciado muchas veces tiene 3 reglas como la anterior. Todas para example.com. Revisé app.yml para ver si estaba haciendo algo tonto (y si lo estuviera, tendría sentido que lo hubiera hecho de la misma manera en varios lugares), pero no hay example.com en el yml.

En la reconstrucción, veo esto en los registros:



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.

Busqué en el código en lugares como s3_backup_store.rb example.com y no puedo encontrar una explicación.

3 Me gusta

Parece que deberíamos recomendar DISCOURSE_S3_INSTALL_CORS_RULE: false para DO como ya hacemos para GCP y BackBlaze en Usar almacenamiento de objetos para subidas (S3 y clones) :thinking:

4 Me gusta

Hola,

Disculpa por reabrir este tema, pero creo que tuve un problema similar hace unos días.

Mi configuración:

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

Parece que cada reconstrucción o actualización de administrador cuando sube activos genera una nueva regla CORS. En realidad, duplica la regla original. Desafortunadamente, no copié el mensaje de error de la consola, pero fue algo antes de subir los activos: se alcanzó el número máximo de 100 reglas CORS, así que fui a Digital Ocean y verifiqué las reglas y sí, eran 100. :smiley: Así que hice lo mismo que @pfaffman, eliminé una y eliminó todas las reglas. Después de esto, los activos se subieron con éxito en la reconstrucción.

Cuando configuré esto, seguí estas instrucciones aquí: Configure an S3 compatible object storage provider for uploads que aún no contiene esta línea.

¿Agregar esta línea detendrá la generación de reglas CORS duplicadas? Gracias :slightly_smiling_face:

Actualicé el otro tema, ¡así que espero que no les suceda a los usuarios en el futuro! Gracias por señalarlo.

2 Me gusta