aboutsummaryrefslogtreecommitdiffstats
path: root/lib/active_storage/service
diff options
context:
space:
mode:
authorStanislav Gospodinov <sani9706@gmail.com>2017-07-06 19:14:10 +0100
committerStanislav Gospodinov <sani9706@gmail.com>2017-07-06 19:14:10 +0100
commitd065a6861664ee92f1fd7a9ffbef5427df2463c1 (patch)
tree5ebd7c1b6b05b87384b2309ba6233a713a92265f /lib/active_storage/service
parent1378bbfcfb56f02dab3fab3e87a9c3ed007e7fd9 (diff)
downloadrails-d065a6861664ee92f1fd7a9ffbef5427df2463c1.tar.gz
rails-d065a6861664ee92f1fd7a9ffbef5427df2463c1.tar.bz2
rails-d065a6861664ee92f1fd7a9ffbef5427df2463c1.zip
Adding server side integrity check for GCS Service
Diffstat (limited to 'lib/active_storage/service')
-rw-r--r--lib/active_storage/service/gcs_service.rb7
1 files changed, 5 insertions, 2 deletions
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