【发布时间】:2021-10-16 04:41:51
【问题描述】:
在 aioboto3 方面需要帮助。上传过程中出现多个错误。
我是异步世界的新手,我正在尝试使用 aioboto3 将多个文件从我的笔记本电脑上传到 S3。这是我的代码(大部分)。 只是需要一些快速而肮脏的东西来将多个文件从我的本地机器获取到 AWS S3。 所以我有点复制from here
现在,甚至不确定使用 aioboto3 是否是一个好主意,但是,我真的很喜欢异步编程的概念,任何解决/调试这些错误的帮助/指针将不胜感激。
async def upload(staging_path):
session = aioboto3.Session(aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)
v_file_path = Path(staging_path)
blob_s3_key = bucket_folder + staging_path.rsplit('\\', 1)[-1]
async with session.client("s3") as s3:
try:
with v_file_path.open("rb") as spfp:
print(f"Uploading {blob_s3_key} to s3")
await s3.upload_fileobj(spfp, bucket, blob_s3_key)
print(f"Finished Uploading {blob_s3_key} to s3")
except Exception as e:
print(f"Unable to s3 upload {staging_path} to {blob_s3_key}: {e} ({type(e)})")
return ""
async def run_proc(file_upload_list):
tasks0 = []
for i in file_upload_list:
task0 = asyncio.ensure_future(upload(i))
tasks0.append(task0)
v_ret = await asyncio.gather(*tasks0)
大多数文件都出现这些错误。只有 3 -4 个文件被上传到 S3:
错误 #1:
[WinError 10054] 现有连接被远程主机强行关闭(
)
错误 #2:
无法连接到主机 my-s3-bucket-nm.s3.us-east-1.amazonaws.com:443 ssl:default [getaddrinfo failed] (
)
错误 #3:
无法连接到主机 my-s3-bucket-nm.s3.us-east-1.amazonaws.com:443 ssl:default [Connect call failed ('XX.XXX.XXX.XX', 443)] (
)
错误 #4:
调用 UploadPart 操作时发生错误 (RequestTimeout)(达到最大重试次数:4):在超时期限内未读取或写入您与服务器的套接字连接。空闲连接将被关闭。 (
)
错误 #5:
调用 UploadPart 操作时发生错误 (RequestTimeout)(达到最大重试次数:4):在超时期限内未读取或写入您与服务器的套接字连接。空闲连接将被关闭。 (
)
【问题讨论】:
标签: python-3.x amazon-web-services amazon-s3 async-await python-asyncio