Errore caricamento immagine: il bucket non consente ACL

Gli utenti e persino gli amministratori non possono più caricare immagini.
Il registro degli errori indica un errore di hotlink.
Limite di 4 MB, ma ho provato a caricare un file da 800 KB come test dopo che un utente si è lamentato.

Abbiamo eseguito un aggiornamento recente qualche giorno fa (2.9.0.beta4).
Abbiamo recentemente configurato i bucket S3.

Ho notato una recente correzione su GitHub di 15 giorni fa per l’hotlink.
Non posso creare problemi su GitHub… è questo il posto giusto per segnalare bug?

Messaggio (2 copie segnalate)

default: Impossibile recuperare l'immagine hotlinked (https://jackrail.space/images/discourse-logo-sketch-small.png) post: 586
Il bucket non consente ACL
/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'

Penso di averlo risolto ma non sono sicuro di cosa faccia questa funzionalità o se disabiliti i miei backup s3.
“abilita caricamenti s3”
Ho abilitato questa opzione pensando che facesse parte della procedura di backup.
Ho disabilitato questa opzione e non ricevo più questo errore quando carico un’immagine di prova.

Quella impostazione inserisce i tuoi caricamenti nel bucket S3 ed è separata dai caricamenti. Sembra che quel bucket non sia codificato correttamente per i caricamenti (vedi Utilizzo dello storage di oggetti per i caricamenti (S3 e cloni) per informazioni).\n\nDovresti comunque verificare che i tuoi backup funzionino.

1 Mi Piace

Credo che questo fosse il problema ed è confermato come risolto dall’utente che si è lamentato.

Non sono sicuro di cosa faccia questo caricamento di immagini, ma immagino sia una funzionalità aggiuntiva di cui i server complessi potrebbero aver bisogno. Suppongo che i nostri 40 utenti non abbiano bisogno di un discourse con questa funzionalità complessa. Siamo più interessati ai “mi piace” con emoji.

Tuttavia, quando ho seguito le istruzioni S3, ho dovuto tornare indietro e creare un nuovo bucket per i “backup” mentre quello originale era per i caricamenti (perché l’ho fatto nell’ordine in cui appariva per le impostazioni). Penso che probabilmente aggiungerò altre informazioni alle istruzioni S3 come risposta per rendere più facile per gli altri seguirle. Inoltre, la policy sui permessi elencata in quel thread di aiuto non esisteva, e ho finito per trovare una soluzione “*” da un altro sito web. Cercherò di chiarire questo in quel thread. Ha funzionato, ma ha richiesto lavoro e modifiche alle istruzioni.

Queste azioni non hanno funzionato… ho usato * invece.

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

Il thread che ho usato per configurare e seguire le istruzioni è qui

Anche lì è indicato “abilita caricamenti S3” come selezionato. Sembra che rendere le cose troppo complesse per l’utente medio.
D’altra parte, spero che i miei backup funzionino bene senza di esso.

Perché hai usato * invece?

L’ho trovato da qualche parte mentre cercavo su Google, solo per farlo accettare il codice. Se guardi il mio post che citi, ho fornito il link. Cerco su Google e incollo la maggior parte delle volte. :slight_smile:
Tuttavia, ho notato in seguito che i caricamenti di immagini non erano necessari per far funzionare i backup. Non so ancora perché uno dovrebbe usarlo. Hai solo bisogno del backup. Non hai bisogno di due bucket. Ho deselezionato quella parte nelle impostazioni perché avevo ancora errori di caricamento e le immagini non erano consentite dagli utenti. Deselezionare quell’elemento ha risolto il problema. Abbiamo un piccolo gruppo di server, quindi dovremmo stare bene per molto tempo.