From 0025a56f9bc135c524fc208b6775086978d12460 Mon Sep 17 00:00:00 2001 From: mn-coupa <157412456+mn-coupa@users.noreply.github.com> Date: Wed, 27 Nov 2024 11:23:49 +0700 Subject: [PATCH] DEVOPS-15838: add checksum header for S3 storage --- lib/paperclip/storage/s3.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/paperclip/storage/s3.rb b/lib/paperclip/storage/s3.rb index ecc79d4a3..89fec5d65 100644 --- a/lib/paperclip/storage/s3.rb +++ b/lib/paperclip/storage/s3.rb @@ -387,6 +387,10 @@ def flush_writes #:nodoc: write_options[:metadata] = @s3_metadata unless @s3_metadata.empty? write_options.merge!(@s3_headers) + sha256_checksum = Digest::SHA256.hexdigest(File.read(file.path)) + encoded_sha256_checksum = Base64.encode64([sha256_checksum].pack("H*")).strip + write_options[:checksum_sha256] = encoded_sha256_checksum # Required for FIPS (SHA256) and object locking (checksum) + s3_object(style).upload_file(file.path, write_options) rescue ::Aws::S3::Errors::NoSuchBucket create_bucket