Error al cargar imagen: El bucket no permite ACLs

Los usuarios e incluso los administradores ya no pueden subir imágenes.
El registro de errores dice “hotlink error”.
Límite de 4 MB, pero intenté subir un archivo de 800 KB como prueba después de que un usuario se quejara.

Realizamos una actualización reciente hace unos días (2.9.0.beta4).
Recientemente configuramos buckets de S3.

Noté una corrección reciente en GitHub de hace 15 días para “hotlink”.
No puedo crear incidencias en GitHub. ¿Es este el lugar para reportar errores?

Mensaje (2 copias reportadas)

default: Error al obtener la imagen enlazada (https://jackrail.space/images/discourse-logo-sketch-small.png) publicación: 586
El bucket no permite ACLs
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/dualstack.rb:36:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/accelerate.rb:50:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/request_callback.rb:71:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/plugins/response_target.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-core-3.121.2/lib/seahorse/client/request.rb:72:in `send_request'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/client.rb:11274:in `put_object'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.96.1/lib/aws-sdk-s3/object.rb:1329:in `put'
/var/www/discourse/lib/s3_helper.rb:74:in `upload'
/var/www/discourse/lib/file_store/s3_store.rb:116:in `store_file'
/var/www/discourse/lib/file_store/s3_store.rb:30:in `store_upload'
/var/www/discourse/lib/upload_creator.rb:212:in `block (2 levels) in cr...

Backtrace

/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:243:in `public_send'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:243:in `log'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:58:in `rescue in block in execute'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:35:in `block in execute'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.4-x86_64-linux/lib/nokogiri/xml/node_set.rb:234:in `block in each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.4-x86_64-linux/lib/nokogiri/xml/node_set.rb:233:in `upto'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.4-x86_64-linux/lib/nokogiri/xml/node_set.rb:233:in `each'
/var/www/discourse/app/jobs/regular/pull_hotlinked_images.rb:34:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in `with_connection'

Creo que lo arreglé, pero no estoy seguro de lo que hace esta función o si deshabilita mis copias de seguridad de S3.
“habilitar cargas s3”
Habilitó esto pensando que era parte del procedimiento de copia de seguridad.
Lo deshabilitó y ya no recibe este error al cargar una imagen de prueba.

Esa configuración pone tus cargas en el bucket S3 y está separada de las cargas. Parece que ese bucket no está codificado correctamente para las cargas (consulta Usar almacenamiento de objetos para cargas (S3 y clones) para obtener información).\n\nAún así, deberías comprobar que tus copias de seguridad funcionan.

1 me gusta

Supongo que ese era el problema y está confirmado como solucionado por el usuario que se quejó.

No estoy seguro de lo que hace esta carga de imágenes, pero supongo que es alguna función adicional que los servidores complejos podrían necesitar. Supongo que nuestros 40 usuarios no necesitan un discurso con esta función compleja. Estamos más interesados en los “me gusta” con emojis.

Sin embargo, cuando seguí las instrucciones de S3, tuve que retroceder y crear un nuevo bucket para “backups” mientras que el original era para cargas (porque lo hice en el orden en que aparecía para la configuración). Creo que probablemente añadiré más información a las instrucciones de S3 como respuesta para facilitar que otros las sigan. Además, la política de permisos que figuraba en ese hilo de ayuda no existía, y terminé encontrando una solución de “*” en otro sitio web. Intentaré aclarar esto en ese hilo. Funcionó, pero requirió trabajo y ajustes en las instrucciones.

Estas acciones no funcionaron… Usé * en su lugar.

"Action": [
           "s3:ListAllMyBuckets",
           "s3:HeadBucket"
       ],

El hilo que utilicé para configurar y seguir las instrucciones está aquí

También tiene marcada la opción de habilitar las cargas de S3. Parece que se están complicando demasiado las cosas para el usuario promedio.
Por otro lado, espero que mis copias de seguridad funcionen bien sin ella.

¿Por qué usaste * en su lugar?

Lo encontré en algún lugar mientras buscaba en Google, solo para que aceptara el código. Si miras mi publicación que citas, proporcioné el enlace. Simplemente busco en Google y copio y pego la mayor parte del tiempo. :slight_smile:
Sin embargo, noté más tarde que las cargas de imágenes no eran necesarias para que las copias de seguridad funcionaran. Todavía no sé por qué se usaría. Realmente solo necesitas la copia de seguridad. No necesitas dos cubos. Desactivé esa parte en la configuración porque todavía tenía errores de carga y las imágenes no estaban permitidas por los usuarios. Desactivar ese elemento lo solucionó. Tenemos un pequeño grupo de servidores, así que estaremos bien durante mucho tiempo.