Su un sito in cui i backup e gli upload su bucket Google funzionavano, la pagina dei backup ora visualizza:
Impossibile accedere all'archivio di backup: un'intestazione o un parametro di query fornito ha richiesto una funzione non implementata.
Pensavo potesse essere un problema di permessi del bucket (ma non aveva molto senso, dato che la stessa configurazione funzionava alcune settimane fa), ma rileggendo il messaggio, sembra che Discourse stia cercando di eseguire un’azione che, beh, non è implementata. (Il che sembra anch’esso improbabile).
Gli upload S3 su un bucket Google (sebbene diverso) funzionano perfettamente. Esiste un sito di produzione su 2.4.0.beta9 e un sito di staging su 2.4.0.beta10 (e ho appena eseguito un altro aggiornamento sul sito di staging).
Si tratta di un’installazione standard a due container con solo plugin standard e le impostazioni S3 configurate tramite env: nel file .yml. EDIT: Ho rimosso quelle impostazioni ENV dal file yml e ho ricreato l’ambiente (l’operazione destroy, start non le ha rimosse), ma il problema persiste.
Non vedo commit evidenti (almeno per me) che possano essere correlati.
EDIT: C’è un’altra istanza di installazione standard in esecuzione su 2.4.0.beta8 con le stesse impostazioni e funziona, quindi sembra che qualcosa sia cambiato tra beta8 e beta9. Questo sembra proprio un . @gerhard, potrebbe essere correlato in qualche modo alle tue modifiche ai backup?
P.S. Ho controllato un sito che utilizza DigitalOcean Spaces e i backup funzionano correttamente.
Stai riscontrando l’errore non appena visiti /admin/backups? Non ho apportato modifiche recenti in quell’area, ma abbiamo aggiornato il gem aws-s3 tra beta8 e beta10, passando dalla versione 1.36.1 alla 1.60.1. È possibile che questo non funzioni più con i bucket di Google. Forse puoi trovare la causa nel CHANGELOG. Potresti provare con diverse versioni del gem per restringere il campo.
Quindi, entrando nel container e modificando Gemfile, cambiando
gem 'aws-sdk-s3', require: false
nella versione
gem 'aws-sdk-s3', '1.51.0', require: false
e poi eseguendo
bundle install --no-deployment
sv restart unicorn
per verificare se ha funzionato, una ricerca binaria attraverso le versioni mostra che 1.51.0 è l’ultima versione funzionante; quindi, qualcosa in 1.52.0 “Feature - Adding support in SelectObjectContent for scanning a portion of an object specified by a scan range.” è dove è iniziato il problema.