python - 为什么 Python Requests 库会被一些上传请求锁定?
问题描述
不,它不会超时(让我们继续前进并解决这个问题)。
我有一个多线程 Python 脚本,用于通过 Microsoft Graph API (v1.0) 将文件上传到 OneDrive,并且每隔一段时间就有一个请求无法正确返回。我有一个包含 707 个文件的测试文件夹,通常有 2-3 个文件“迷失在以太中”。
以下是我当前的代码。try/except 块没有捕获任何异常(因此是 BaseException)。该请求未返回响应/错误代码。
重要信息:未返回响应的文件正在上传。但是,如果没有任何响应,我将无法继续执行线程来执行其他任务。
try:
response = s.put(
f'{graph_config["endpoint"]}/sites/{self.sp_site_id}/drive/items/root:/{self.sp_teams_channel}/{folder_path}/{sanitized_filename}:/content',
headers={
'Authorization': 'Bearer ' + graph_client['access_token'],
'Content-type': 'application/binary'
},
data=open(local_file, 'rb').read(),
timeout=20
)
except BaseException as e:
logging.error(f'BaseException: {str(e)}')
我努力了:
- 捕捉异常
- 减少最大线程数
- 上传分块编码文件(似乎发生了同样的问题)
我在用:
- Python 3.8.2(相同的问题,版本略有不同)
- 请求==2.24.0
- Ubuntu 20.04(与 18.04 相同的问题)
解决方案
推荐阅读
- c++ - 如何使用 std::copy 复制类实例变量的所有元素?
- xml - 使用 XSLT 转换 XML,但只转换某些节点、属性、
- git - 重用 Fastlane 匹配来加密其他凭据和 android 密钥存储
- forms - Trying to get form values from NavigationService but getting undefined function error
- ajax - 页面性能问题
- firebase - 当我运行 firebase serve --only 托管时,功能托管不起作用
- excel - 在 Excel 中:按记录日期计算多列中的相同值
- android - 控制视频的播放时间
- javascript - 当两个数据属性都不为空时,将按钮从禁用更改为启用
- c# - 如何使用 EEPLUS 从 Excel 读取数据并将其导入数据库