From ea7069bf7f228a9cc5f83a9775eab8cf3e2814bb Mon Sep 17 00:00:00 2001 From: Dan Date: Wed, 12 Oct 2022 14:47:06 -0400 Subject: [PATCH] fixing pdf generator --- .../connector_aws/commands/uploadFile.py | 45 +++++++++++++++++++ .../connector_pdf/commands/create.py | 2 - 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 connectors/connector-aws/connector_aws/commands/uploadFile.py diff --git a/connectors/connector-aws/connector_aws/commands/uploadFile.py b/connectors/connector-aws/connector_aws/commands/uploadFile.py new file mode 100644 index 0000000..cf85e33 --- /dev/null +++ b/connectors/connector-aws/connector_aws/commands/uploadFile.py @@ -0,0 +1,45 @@ +"""UploadFile.""" +from botocore.exceptions import ClientError # type: ignore +from connector_aws.auths.simpleAuth import SimpleAuth # type: ignore + + +class UploadFileData: + """UploadFileData.""" + + def __init__( + self, + file_data: bytes, + bucket: str, + object_name: str, + ): + """ + :param file_data: Contents of file to be uploaded + :param bucket: Bucket to upload to + :param object_name: S3 object name. + :return: Json Data structure containing a http status code (hopefully '200' for success..) + and a response string. + """ + self.file_data = file_data + self.bucket = bucket + self.object_name = object_name + + def execute(self, config, task_data): + """Execute.""" + # Upload the file + client = SimpleAuth("s3", config).get_resource() + try: + result = client.Object(self.bucket, self.object_name).put( + Body=self.file_data + ) + status = str(result["ResponseMetadata"]["HTTPStatusCode"]) + + # TODO these can be improved + if status == "200": + response = '{ "result": "success" }' + else: + response = '{ "result": "error" }' + except ClientError as e: + response = f'{ "error": "AWS Excetion {e}" }' + status = "500" + + return {"response": response, "status": status, "mimetype": "application/json"} diff --git a/connectors/connector-pdf/connector_pdf/commands/create.py b/connectors/connector-pdf/connector_pdf/commands/create.py index 10cb942..7b456bb 100644 --- a/connectors/connector-pdf/connector_pdf/commands/create.py +++ b/connectors/connector-pdf/connector_pdf/commands/create.py @@ -65,8 +65,6 @@ class CreatePDFAndUploadToS3: } aws_result = UploadFileData( - aws_access_key_id, - aws_secret_access_key, pdf_result["response"], aws_bucket, self.aws_object_name,