# Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file # except in compliance with the License. A copy of the License is located at # # http://aws.amazon.com/apache2.0/ # # or in the "license" file accompanying this file. This file is distributed on an "AS IS" # BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under the License. """ A BitBucket Builds template for deploying an application revision to AWS CodeDeploy narshiva@amazon.com v1.0.0 """ from __future__ import print_function import os import sys import argparse import boto3 from botocore.exceptions import ClientError def upload_to_s3(bucket, artefact, bucket_key): """ Uploads an artefact to Amazon S3 """ try: client = boto3.client('s3') except ClientError as err: print("Failed to create boto3 client.\n" + str(err)) return False try: client.put_object( Body=open(artefact, 'rb'), Bucket=bucket, Key=bucket_key ) except ClientError as err: print("Failed to upload artefact to S3.\n" + str(err)) return False except IOError as err: print("Failed to access artefact in this directory.\n" + str(err)) return False return True def main(): parser = argparse.ArgumentParser() parser.add_argument("bucket", help="Name of the existing S3 bucket") parser.add_argument("artefact", help="Name of the artefact to be uploaded to S3") parser.add_argument("bucket_key", help="Name of the S3 Bucket key") args = parser.parse_args() if not upload_to_s3(args.bucket, args.artefact, args.bucket_key): sys.exit(1) if __name__ == "__main__": main()