🔗 Active Storage Changelog
参考: Release 8.1.0.beta1 · rails/rails
参考: コミットリスト: Comparing v8.0.2.1...v8.1.0.beta1 · rails/rails
🔗 Remove deprecated :azure
storage service · rails/rails@f3e0670★
非推奨化されていた
:azure
ストレージサービスを削除した。Rafael Mendonça França
同Changelogより
参考: Deprecate ActiveStorage::Service::AzureStorageService by zzak · Pull Request #52863 · rails/rails
🔗 Remove unnecessary calls to the GCP metadata server by drcapulet · Pull Request #55353 · rails/rails
GCPのメタデータサーバーへの不要な呼び出しを削除した。
Google::Auth.get_application_default
を呼び出すと、メタデータサーバーへの呼び出しが明示的にトリガーされる。多数のファイル操作のために呼び出された場合、かなりのテールレイテンシが発生し、メタデータサーバーの過負荷になる可能性がある。代わりに、アプリケーションでは以下の方法を推奨する(この方がはるかに効率的)。Google::Apis::RequestOptions.default.authorization = Google::Auth.get_application_default(...)
アプリケーションでcredential(認証情報)を設定していない場合は、GCPライブラリによって自動的にcredentialが決定される。
これにより、impersonation(偽装)などでGCPサービスアカウントに紐づけられていないcredentialも利用可能になる。
Alex Coomans
同Changelogより
🔗 Upload progress accounts for server processing time by jeremy · Pull Request #55157 · rails/rails
ダイレクトアップロードのプログレス表示でサーバー処理時間も考慮されるようになった。
Jeremy Daer
同Changelogより
参考: §11 ダイレクトアップロード -- Active Storage の概要 - Railsガイド
🔗 Delegate ActiveStorage::Filename#to_str
to #to_s
by seanpdoyle · Pull Request #54185 · rails/rails
ActiveStorage::Filename#to_str
を#to_s
に委譲した。これによって文字列型で以下の比較が可能になる。
filename = ActiveStorage::Filename.new("file.txt") filename == "file.txt" # => true filename in "file.txt" # => true "file.txt" == filename # => true
Sean Doyle
同Changelogより
🔗 Add config option for MD5 class to support FIPS compliance by mrpasquini · Pull Request #54040 · rails/rails
config.active_storage.checksum_implementation
でMD5の別実装を指定可能になった。それとともに、OpenSSLのFIPSモードによって
OpenSSL::Digest::MD5
が無効になっていることが判明した場合は、自動的に低速なDigest::MD5
実装にレベルダウンするようになった。Matt Pasquini, Jean Boussier
同Changelogより
参考: active_storage fips 140-2 issue · Issue #34443 · rails/rails
参考: FIPS 140-3 に準拠した OpenSSL の最新バージョン「OpenSSL 3.1」公開 |BLOG| サイバートラスト
🔗 Prevent Active Storage Blob from autosaving Attachments: by Edouard-chin · Pull Request #53623 · rails/rails★
Active Storage::Blob
が添付ファイル(ActiveStorage::Attachment
)を自動保存しないように変更された。これによって添付ファイル付きのレコードのダーティ属性がリセットされるようになり、そのレコードで
after_commit
コールバックが動作しなくなる(期待通りの振る舞い)。この修正は内部的なものであり、アプリケーション側の変更は不要。
ActiveStorage::Attachment
は引き続き別のリレーション経由で自動保存される。Edouard-chin
同Changelogより
以下の#55144で、config.active_storage.touch_attachment_records
にfalseを設定しているとblobをレコードに添付するときにActiveRecord::ActiveRecordError: Cannot touch on a new or destroyed record object. Consider using persisted?, new_record?, or destroyed? before touching.
エラーが発生することが報告されています。このエラーは、アプリケーションのコードが#53623で修正される前の添付ファイル自動保存に暗黙で依存していたためと思われます。
breaking changesの可能性があるプルリク・コミット
:azure
storage service)★個別のプルリクにも目印として★を追加しています。