使用python请求以单个请求流式传输多个文件

使用python请求以单个请求流式传输多个文件,python,django,django-rest-framework,python-requests,Python,Django,Django Rest Framework,Python Requests,我正在使用python的请求库将图像上传到django/drf创建的服务器中。这是一个简单的任务,测试脚本如下所示: files = { 'client_files[0]': ('415.png', open('E:\\Olaylar\\test_set\\cvat_test_small\\415.png', 'rb')), 'client_files[1]': ('422.png', open('E:\\Olaylar\\test_set\\cvat_test_small\\4

我正在使用python的请求库将图像上传到django/drf创建的服务器中。这是一个简单的任务,测试脚本如下所示:

files = {
    'client_files[0]': ('415.png', open('E:\\Olaylar\\test_set\\cvat_test_small\\415.png', 'rb')),
    'client_files[1]': ('422.png', open('E:\\Olaylar\\test_set\\cvat_test_small\\422.png', 'rb')),
    'client_files[2]': ('485.png', open('E:\\Olaylar\\test_set\\cvat_test_small\\485.png', 'rb'))
}

payload = {
    'image_quality': 50
}

response = requests.post(post_url, auth=auth, data=payload,files=files)
问题是,我需要在一次请求中上传数百张(如果不是数千张)图像。因此,当我试图将所有文件读入内存以便发布它们时,我的内存很快就用完了

我知道有一个可能的解决方案,就是在post方法的数据参数中放置一个生成器,并按块流式传输数据。这将很好地解决我的问题,但请求库也不支持post方法的files参数中的该功能


我将非常感谢任何帮助或建议如何解决这个问题。提前感谢

为什么不循环每个文件并一次上载一个文件呢?我用它在一个名为CVAT的注释工具中创建注释任务,它的api假设每个post请求都是另一个任务。因此,如果我将其拆分为块,并使用新的post请求上载每个块,它还会将我的数据拆分为不同的任务(而图像集应该是单个任务)