【问题标题】:aioboto3 uploads failing with multiple errorsaioboto3 上传失败并出现多个错误
【发布时间】: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


    【解决方案1】:

    在这一点上,我会说这个问题已部分关闭。 大约 90% 已解决。

    以下是我的 2 个发现:

    1. 退出公司 VPN 显着提高了代码性能。
    2. aioboto3.Session(aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY) 还必须提供“aws region”参数。

    由于这个问题还没有 100% 解决,我已将我的方法切换到旧的多线程。但是,通过上面提到的 2 个步骤,代码运行良好,偶尔会出现与网络相关的中止。

    谢谢!

    【讨论】:

      猜你喜欢
      • 2017-02-17
      • 2021-09-25
      • 2017-11-02
      • 1970-01-01
      • 2016-08-02
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多