From 44415b4086ccb9522f0f33f64a20801493b95e55 Mon Sep 17 00:00:00 2001 From: Josh Schwartzman Date: Wed, 17 Dec 2025 06:15:49 -0700 Subject: [PATCH] Fix merging of signature + expiry into params --- lib/uploadcare/param/upload/signature_generator.rb | 4 ++-- lib/uploadcare/param/upload/upload_params_generator.rb | 7 ++++--- .../param/upload/upload_params_generator_spec.rb | 7 +++++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/uploadcare/param/upload/signature_generator.rb b/lib/uploadcare/param/upload/signature_generator.rb index 23ff3fc5..da7f0d07 100644 --- a/lib/uploadcare/param/upload/signature_generator.rb +++ b/lib/uploadcare/param/upload/signature_generator.rb @@ -14,8 +14,8 @@ def self.call to_sign = Uploadcare.config.secret_key + expires_at.to_s signature = Digest::MD5.hexdigest(to_sign) { - signature: signature, - expire: expires_at + 'signature' => signature, + 'expire' => expires_at } end end diff --git a/lib/uploadcare/param/upload/upload_params_generator.rb b/lib/uploadcare/param/upload/upload_params_generator.rb index 01a0128f..eaf5c479 100644 --- a/lib/uploadcare/param/upload/upload_params_generator.rb +++ b/lib/uploadcare/param/upload/upload_params_generator.rb @@ -12,9 +12,10 @@ class << self def call(options = {}) { 'UPLOADCARE_PUB_KEY' => Uploadcare.config.public_key, - 'UPLOADCARE_STORE' => store_value(options[:store]), - 'signature' => (Upload::SignatureGenerator.call if Uploadcare.config.sign_uploads) - }.merge(metadata(options)).compact + 'UPLOADCARE_STORE' => store_value(options[:store]) + }.merge( + Uploadcare.config.sign_uploads ? Upload::SignatureGenerator.call : {} + ).merge(metadata(options)).compact end private diff --git a/spec/uploadcare/param/upload/upload_params_generator_spec.rb b/spec/uploadcare/param/upload/upload_params_generator_spec.rb index 862c0d0d..c16527bb 100644 --- a/spec/uploadcare/param/upload/upload_params_generator_spec.rb +++ b/spec/uploadcare/param/upload/upload_params_generator_spec.rb @@ -16,6 +16,13 @@ module Upload expect(params['UPLOADCARE_PUB_KEY']).not_to be_nil expect(params['UPLOADCARE_STORE']).not_to be_nil end + + it 'generates upload params with signature if sign_uploads is true' do + Uploadcare.config.sign_uploads = true + params = subject.call + expect(params['signature']).not_to be_nil + expect(params['expire']).not_to be_nil + end end end end