From 96f1c0d29515daba43b69b75092fb74a5c343fba Mon Sep 17 00:00:00 2001 From: richard-dds Date: Tue, 6 Aug 2019 14:27:07 -0400 Subject: [PATCH] AWS downloads --- atst/domain/csp/file_uploads.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/atst/domain/csp/file_uploads.py b/atst/domain/csp/file_uploads.py index bfc47689..a8947e20 100644 --- a/atst/domain/csp/file_uploads.py +++ b/atst/domain/csp/file_uploads.py @@ -108,7 +108,7 @@ class AwsUploader(Uploader): presigned_post = s3_client.generate_presigned_post( self.bucket_name, object_name, - ExpiresIn=3600, + ExpiresIn=self.timeout_secs, Conditions=[ ("eq", "$Content-Type", "application/pdf"), ("starts-with", "$x-amz-meta-filename", ""), @@ -116,3 +116,14 @@ class AwsUploader(Uploader): Fields={"Content-Type": "application/pdf", "x-amz-meta-filename": ""}, ) return (presigned_post, object_name) + + def generate_download_link(self, object_name, filename): + s3_client = boto3.client( + "s3", + aws_access_key_id=self.access_key_id, + aws_secret_access_key=self.secret_key, + config=boto3.session.Config( + signature_version="s3v4", region_name=self.region_name + ), + ) + return s3_client.generate_presigned_url("get_object", Params={"Bucket": self.bucket_name, "Key": object_name, "ResponseContentDisposition": f"attachment; filename={filename}"}, ExpiresIn=self.timeout_secs)