manage_aws_s3_bucket.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:twitter_LDA_topic_modeling 作者: kenneth-orton 项目源码 文件源码
def main():
    parser = argparse.ArgumentParser(description='Upload or download files/directories to or from an S3 bucket')
    subparsers = parser.add_subparsers(dest='mode')

    upload_file_parser = subparsers.add_parser('up_file', help='Upload individual file to S3 bucket')
    upload_file_parser.add_argument('-f', '--file_loc', required=True, action='store', dest='file_loc', help='Full path to filename')
    upload_file_parser.add_argument('-b', '--bucket', required=True, action='store', dest='bucket_name', help='Name of the S3 bucket')
    upload_file_parser.add_argument('-fs', '--file_store', required=True, action='store', dest='file_store', help='How the file will be named in S3 bucket')

    upload_dir_parser = subparsers.add_parser('up_dir', help='Upload directory to S3 bucket')
    upload_dir_parser.add_argument('-d', '--dir_loc', required=True, action='store', dest='dir_loc', help='Full path to directory')
    upload_dir_parser.add_argument('-b', '--bucket', required=True, action='store', dest='bucket_name', help='Name of the S3 bucket')

    dnload_file_parser = subparsers.add_parser('dn_file', help='Download individual file from S3 bucket')
    dnload_file_parser.add_argument('-b', '--bucket', required=True, action='store', dest='bucket_name', help='Name of the S3 bucket')
    dnload_file_parser.add_argument('-f', '--file_name', required=True, action='store', dest='file_name', help='Name of file in S3 bucket')

    argcomplete.autocomplete(parser)
    args = parser.parse_args()

    s3 = boto3.resource('s3')

    if args.mode == 'up_file':
        print('Uploading: ' + args.file_loc)
        s3.Bucket(args.bucket_name).put_object(Key=args.file_store, Body=open(args.file_loc))

    if args.mode == 'up_dir':
        for path, dirs, files in os.walk(args.dir_loc):
            for filename in files:
                print('Uploading: ' + (path + filename))
                s3.Bucket(args.bucket_name).put_object(Key=filename, Body=open(path + filename, 'rb'))

    if args.mode == 'dn_file':
        s3.meta.client.download_file(args.bucket_name, args.file_name, './' + args.file_name)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号