From d065a6861664ee92f1fd7a9ffbef5427df2463c1 Mon Sep 17 00:00:00 2001 From: Stanislav Gospodinov Date: Thu, 6 Jul 2017 19:14:10 +0100 Subject: Adding server side integrity check for GCS Service --- lib/active_storage/service/gcs_service.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lib/active_storage') diff --git a/lib/active_storage/service/gcs_service.rb b/lib/active_storage/service/gcs_service.rb index a558791d89..532da08df3 100644 --- a/lib/active_storage/service/gcs_service.rb +++ b/lib/active_storage/service/gcs_service.rb @@ -10,8 +10,11 @@ class ActiveStorage::Service::GCSService < ActiveStorage::Service end def upload(key, io, checksum: nil) - # FIXME: Ensure integrity by sending the checksum for service side verification - bucket.create_file(io, key) + begin + bucket.create_file(io, key, md5: checksum) + rescue Google::Cloud::InvalidArgumentError + raise ActiveStorage::IntegrityError + end end # FIXME: Add streaming when given a block -- cgit v1.2.3