aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage
diff options
context:
space:
mode:
authorRosa Gutierrez <rosa@rosapolis.net>2017-08-31 17:48:24 +0200
committerRosa Gutierrez <rosa@rosapolis.net>2017-08-31 18:56:55 +0200
commit390840eb4e219a26278b88df71ab18b6f8f0fe7a (patch)
tree112ba8483163013e2d4fa5b84d2d97dcc7c06160 /activestorage
parentc2b2a8c74fcd2e32996641503ed029c8f7484b00 (diff)
downloadrails-390840eb4e219a26278b88df71ab18b6f8f0fe7a.tar.gz
rails-390840eb4e219a26278b88df71ab18b6f8f0fe7a.tar.bz2
rails-390840eb4e219a26278b88df71ab18b6f8f0fe7a.zip
Ignore files already deleted on GCS file deletions
Relying on the GET request issued first to fetch the file we want to delete is not enough to avoid this error. If the file is deleted after our GET request but before the DELETE request we'll get a NotFound error that after all means that the file is already deleted, so it can be safely ignored.
Diffstat (limited to 'activestorage')
-rw-r--r--activestorage/lib/active_storage/service/gcs_service.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activestorage/lib/active_storage/service/gcs_service.rb b/activestorage/lib/active_storage/service/gcs_service.rb
index ebf24a36d7..b3fe592097 100644
--- a/activestorage/lib/active_storage/service/gcs_service.rb
+++ b/activestorage/lib/active_storage/service/gcs_service.rb
@@ -35,7 +35,11 @@ module ActiveStorage
def delete(key)
instrument :delete, key do
- file_for(key).try(:delete)
+ begin
+ file_for(key).try(:delete)
+ rescue Google::Cloud::NotFoundError
+ # Ignore files already deleted
+ end
end
end