Dev News Daily ENDE

Rails setzt kein public-read-ACL mehr auf S3 und bringt maintenance_database

Das wöchentliche Rails-Änderungsprotokoll vom 9. Oktober sammelt einige Änderungen aus dem Hauptzweig; zwei davon beheben echte Fehler im Betrieb.

Active Storage und S3-Buckets ohne ACLs. AWS nutzt inzwischen „Bucket owner enforced“ als Standard- und empfohlene Einstellung für Objekteigentum, und solche Buckets lehnen jede Anfrage mit ACL ab. Active-Storage-Dienste mit public: true hängten an Uploads immer ein public-read-ACL an, ohne Abschaltmöglichkeit — Uploads über einen öffentlichen Dienst in einen modernen Bucket schlugen deshalb komplett fehl. Rails setzt dieses ACL jetzt nicht mehr; öffentlicher Lesezugriff soll über eine Bucket-Policy vergeben werden. Buckets, die noch ACLs nutzen, können das alte Verhalten je Dienst über die Option acl in der Upload-Konfiguration zurückholen.

PostgreSQL maintenance_database. Rails-Datenbanktasks verbinden sich standardmäßig mit der Datenbank postgres. Manche verwalteten PostgreSQL-Dienste — genannt wird DigitalOcean — stellen keine bereit, dort scheiterten die Tasks. Die neue Adapteroption maintenance_database legt die Ausweichdatenbank fest, analog zu psql --maintenance-db.

Rails setzt kein public-read-ACL mehr auf S3 und bringt maintenance_database
Rails setzt kein public-read-ACL mehr auf S3 und bringt maintenance_database — Dev News Daily

Kleinere Änderungen, die man kennen sollte:

  • has_one_attached und has_many_attached reichen weitere Optionen durch, has_one_attached :avatar, deprecated: true funktioniert.
  • Ereignisse von ActiveSupport::EventReporter sind eingefroren: Ein Subscriber kann das Ereignis für spätere Subscriber nicht mehr ändern, Änderungen an Ort und Stelle werfen FrozenError — vorher dup. Code, der Ereignisse in place anreichert, wird scheitern.
  • Strukturierte rails.deprecation-Ereignisse wurden mit config.active_support.deprecation = :notify nie ausgelöst, weil die Subscriber-Klasse nie geladen wurde; behoben.
  • Migrationen mit Version 5.1 oder älter beachten jetzt table_name_prefix und table_name_suffix in change_column; SQLite-Referenzen in 6.0-Migrationen beachten ein explizites type:.

Was zu tun ist. Wer nach dem Anlegen eines neuen S3-Buckets ACL-Fehler bei Active-Storage-Uploads sah, bekommt hier die Korrektur — und die Bucket-Policy ist der Ort für öffentlichen Lesezugriff. Wer EventReporter-Subscriber hat, sollte sie vor dem Update nach Änderungen an Ort und Stelle durchsuchen. Das Protokoll zählt 30 Mitwirkende in der Woche.

Quelle: Ruby on Rails, „This Week in Rails: Better ACL S3 control and more“, 9. Oktober 2026 — https://rubyonrails.org/2026/10/9/this-week-in-rails