You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ImgurPython上传时突发SSL协议错误的排查求助

ImgurPython批量上传功能突发SSL错误排查求助

我开发了一个基于ImgurPython库的批量相册上传应用,用来替代网页UI完成重复上传操作。该应用稳定运行数周后,近期上传功能突然失效,但其他API调用(如查询额度、查看相册内容、创建相册)均能正常执行。本地未做任何代码或环境变更,尝试多种排查手段仍未定位故障原因。

命令行复现故障及错误日志

>>> import os, sys, re, time
>>> from imgurpython import ImgurClient
>>> sys.version
'3.12.0 (tags/v3.12.0:0fb18b0, Oct  2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)]'
>>> client_id = "..."
>>> client_secret = "..."
>>> access_token = "..."
>>> refresh_token = "..."
>>> client = ImgurClient(client_id, client_secret, access_token, refresh_token)
>>> client.get_credits()
{'UserLimit': 500, 'UserRemaining': 500, 'UserReset': 1712002684, 'ClientLimit': 12500, 'ClientRemaining': 12499}
>>> fpath = '...'
>>> fd = open(fpath, 'rb')
>>> res = client.upload(fd, anon=False)
urllib3.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:2406)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connectionpool.py", line 847, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\util\retry.py", line 515, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.imgur.com', port=443): Max retries exceeded with url: /3/upload (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2406)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\imgurpython-1.1.7-py3.12.egg\imgurpython\client.py", line 598, in upload
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\imgurpython-1.1.7-py3.12.egg\imgurpython\client.py", line 133, in make_request
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\MyUserName\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\adapters.py", line 517, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.imgur.com', port=443): Max retries exceeded with url: /3/upload (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2406)')))

已排除的可能原因

  • 未超出API使用额度:查询get_credits()显示额度充足
  • 故障不针对特定文件:测试文件为之前上传成功的文件
  • 网络环境无影响:切换或关闭VPN后问题依旧
  • 时间周期无影响:等待多日及新月份到来后故障未消失
  • 应用凭证无问题:更换新的应用ID/密钥后问题仍存在

查阅相关问题未找到完全匹配的案例,部分建议使用requests会话,但ImgurPython已采用该方式,现求助解决该上传SSL错误问题。

内容的提问来源于stack exchange,提问作者Amanadiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:52:04