Pyj*_*ava 7 python-3.x python-asyncio aiohttp boto3 aws-lambda
我想以异步方式将多个对象从一个 s3 存储桶复制到另一个存储桶,并且我想保持其状态。
我已经尝试在 s3 boto3 库上使用 async 和 wait ,但它们执行顺序复制。我也尝试过使用 aiobotocore 和 aioboto3 库,但它们没有 boto3 中使用的正确的 copy_object API。
async def copy_file(taskdescriptor: list, buckets: list):
#loop = asyncio.get_event_loop()
print("taskdescriptor", taskdescriptor)
for job in taskdescriptor[0]:
print("Inside copy", job , buckets)
src_bucket = buckets[0]
dest_bucket = buckets[1]
src_path = job[0]
dest_path = job[1]
src_loc = {"Bucket": src_bucket, "Key": src_path}
#loop = asyncio.get_event_loop()
#session = aiobotocore.get_session()
async with aioboto3.client('s3') as asyncs3:
print("s3 copy from {} to {}".format(src_path, dest_path))
resp = await asyncs3.copy_object(Bucket=dest_bucket, Key=dest_path, CopySource=src_loc)
print("done ----->", resp)
print("file copy done")
Run Code Online (Sandbox Code Playgroud)
基本上我想一次复制多个文件,寻找将数据从一个 s3 存储桶复制到另一个存储桶的最快方法。
| 归档时间: |
|
| 查看次数: |
998 次 |
| 最近记录: |