将数据从 aws s3 存储桶迁移到 GCS

时间:2021-05-04 12:41:30

标签: python amazon-web-services amazon-s3 database-migration transfer

我正在将数据从 aws s3 存储桶迁移到 GCS。我正在使用 gc 中的这个函数来创建一个每段时间都运行的作业。 sink_bucket 发生异常,请使用 %tb 查看完整的回溯。" SystemExit: 2

是否有另一种方法可以将数据从 aws s3 存储桶迁移到 gcs 中?

如何解决?

 def main(description, project_id, start_date, start_time, source_bucket,
         access_key_id, secret_access_key, sink_bucket):
    storagetransfer = googleapiclient.discovery.build('storagetransfer', 'v1')

    # Edit this template with desired parameters.
    transfer_job = {
        'description': 'migrate from s3 to gcs',
        'status': 'ENABLED',
        'projectId': '*******',
        'schedule': {
            'scheduleStartDate': {
                'day': '6',
                'month': '5',
                'year': '2020'
            },
            'scheduleEndDate': {
                'day': '7',
                'month': '5',
                'year': '2020'
            },
            'startTimeOfDay': {
                'hours': '12',
                'minutes': '01',
                'seconds': '01'
            }
        },
        'transferSpec': {
            'awsS3DataSource': {
                'bucketName': '*****',
                'awsAccessKey': {
                    'accessKeyId': '*******',
                    'secretAccessKey': '*******'
                }
            },
            'gcsDataSink': {
                'bucketName': '*****'
            }
        }
    }

    result = storagetransfer.transferJobs().create(body=transfer_job).execute()
    print('Returned transferJob: {}'.format(
        json.dumps(result, indent=4)))


if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description=__doc__,
        formatter_class=argparse.RawDescriptionHelpFormatter)
    parser.add_argument('description', help='Transfer description.')
    parser.add_argument('project_id', help='Your Google Cloud project ID.')
    parser.add_argument('start_date', help='Date YYYY/MM/DD.')
    parser.add_argument('start_time', help='UTC Time (24hr) HH:MM:SS.')
    parser.add_argument('source_bucket', help='AWS source bucket name.')
    parser.add_argument('access_key_id', help='Your AWS access key id.')
    parser.add_argument(
        'secret_access_key',
        help='Your AWS secret access key.'
    )
    parser.add_argument('sink_bucket', help='GCS sink bucket name.')

    args = parser.parse_args()
    start_date = datetime.datetime.strptime(args.start_date, '%Y/%m/%d')
    start_time = datetime.datetime.strptime(args.start_time, '%H:%M:%S')

    main(
        args.description,
        args.project_id,
        start_date,
        start_time,
        args.source_bucket,
        args.access_key_id,
        args.secret_access_key,
        args.sink_bucket)

0 个答案:

没有答案