Delete S3 file only when bucket is the current one

This commit is contained in:
Guewen Baconnier
2016-11-14 08:29:13 +01:00
parent 110ec2399d
commit 607268bd4f
+6 -3
View File
@@ -150,8 +150,10 @@ class IrAttachment(models.Model):
s3uri = S3Uri(fname) s3uri = S3Uri(fname)
bucket_name = s3uri.bucket() bucket_name = s3uri.bucket()
item_name = s3uri.item() item_name = s3uri.item()
# delete the file only if it is on the current configured bucket
bucket = self._get_s3_bucket(name=bucket_name) # otherwise, we might delete files used on a different environment
if bucket_name == os.environ.get('AWS_BUCKETNAME'):
bucket = self._get_s3_bucket()
filekey = bucket.get_key(item_name) filekey = bucket.get_key(item_name)
if not count and filekey: if not count and filekey:
try: try:
@@ -160,7 +162,8 @@ class IrAttachment(models.Model):
'file %s deleted on the object storage' % (fname,) 'file %s deleted on the object storage' % (fname,)
) )
except S3ResponseError: except S3ResponseError:
# log verbose error from s3, return short message for user # log verbose error from s3, return short message for
# user
_logger.exception( _logger.exception(
'Error during deletion of the file %s' % fname 'Error during deletion of the file %s' % fname
) )