From 2982ca3baafe9565c3ddf47f15bba0151da4c8ab Mon Sep 17 00:00:00 2001 From: f Date: Wed, 18 Dec 2024 11:36:58 -0300 Subject: [PATCH 1/4] fix: fallar si no se encuentra el sitio #17889 --- app/controllers/active_storage/disk_controller_decorator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/active_storage/disk_controller_decorator.rb b/app/controllers/active_storage/disk_controller_decorator.rb index ec3ac0b4..2df9e11c 100644 --- a/app/controllers/active_storage/disk_controller_decorator.rb +++ b/app/controllers/active_storage/disk_controller_decorator.rb @@ -24,7 +24,7 @@ module ActiveStorage if (token = decode_verified_token) if acceptable_content?(token) blob = ActiveStorage::Blob.find_by_key! token[:key] - site = Site.find_by_name token[:service_name] + site = Site.find_by_name! token[:service_name] if remote_file?(token) begin From f57a0f1aa400834c17b5e169f77ed866df8ca301 Mon Sep 17 00:00:00 2001 From: f Date: Wed, 18 Dec 2024 11:37:19 -0300 Subject: [PATCH 2/4] fix: terminar de procesar si no se puede descargar #17889 --- app/controllers/active_storage/disk_controller_decorator.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/active_storage/disk_controller_decorator.rb b/app/controllers/active_storage/disk_controller_decorator.rb index 2df9e11c..0b2cf340 100644 --- a/app/controllers/active_storage/disk_controller_decorator.rb +++ b/app/controllers/active_storage/disk_controller_decorator.rb @@ -37,6 +37,8 @@ module ActiveStorage ExceptionNotifier.notify_exception(e, data: { key: token[:key], url: url, site: site.name }) head :content_too_large + + return end else body = request.body From c58740e524654c2dc7324690ed5bbdc1e0827c6a Mon Sep 17 00:00:00 2001 From: f Date: Wed, 18 Dec 2024 11:37:38 -0300 Subject: [PATCH 3/4] fix: reportar errores #17889 --- app/controllers/active_storage/disk_controller_decorator.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/active_storage/disk_controller_decorator.rb b/app/controllers/active_storage/disk_controller_decorator.rb index 0b2cf340..50ef2815 100644 --- a/app/controllers/active_storage/disk_controller_decorator.rb +++ b/app/controllers/active_storage/disk_controller_decorator.rb @@ -45,7 +45,7 @@ module ActiveStorage checksum = token[:checksum] end - named_disk_service(token[:service_name]).upload token[:key], body, checksum: checksum + named_disk_service(site.name).upload token[:key], body, checksum: checksum site.static_files.attach(blob) else @@ -54,7 +54,9 @@ module ActiveStorage else head :not_found end - rescue ActiveStorage::IntegrityError + rescue ActiveRecord::ActiveRecordError, ActiveStorage::Error => e + ExceptionNotifier.notify_exception(e, data: { token: }) + head :unprocessable_entity end From c6428c8b11d318332f5a8535579706bafcff3060 Mon Sep 17 00:00:00 2001 From: f Date: Wed, 18 Dec 2024 11:39:23 -0300 Subject: [PATCH 4/4] chore: rubocop --- .../active_storage/disk_controller_decorator.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/active_storage/disk_controller_decorator.rb b/app/controllers/active_storage/disk_controller_decorator.rb index 50ef2815..3b0bf07b 100644 --- a/app/controllers/active_storage/disk_controller_decorator.rb +++ b/app/controllers/active_storage/disk_controller_decorator.rb @@ -11,7 +11,7 @@ module ActiveStorage # Permitir incrustar archivos subidos (especialmente PDFs) desde # otros sitios. def show - original_show.tap do |s| + original_show.tap do |_s| response.headers.delete 'X-Frame-Options' end end @@ -32,9 +32,9 @@ module ActiveStorage body = Down.download(url, max_size: 111.megabytes) checksum = Digest::MD5.file(body.path).base64digest blob.metadata[:url] = url - blob.update_columns checksum: checksum, byte_size: body.size, metadata: blob.metadata + blob.update_columns checksum:, byte_size: body.size, metadata: blob.metadata rescue StandardError => e - ExceptionNotifier.notify_exception(e, data: { key: token[:key], url: url, site: site.name }) + ExceptionNotifier.notify_exception(e, data: { key: token[:key], url:, site: site.name }) head :content_too_large @@ -45,7 +45,7 @@ module ActiveStorage checksum = token[:checksum] end - named_disk_service(site.name).upload token[:key], body, checksum: checksum + named_disk_service(site.name).upload(token[:key], body, checksum:) site.static_files.attach(blob) else @@ -68,7 +68,7 @@ module ActiveStorage def page_not_found(exception) head :not_found - ExceptionNotifier.notify_exception(exception, data: {params: params.to_hash}) + ExceptionNotifier.notify_exception(exception, data: { params: params.to_hash }) end end end