我在 Python 中实现了一个简单的上传处理程序,它将上传的文件分块读取到内存中,GZips 并对它们进行签名,然后将它们重新上传到另一台服务器以进行长期存储。我已经设计了一种方法来使用我的网络服务器分块读取上传,基本上我有一个这样的工作流程:
class MyUploadHandler:
def on_file_started(self, file_name):
pass
def on_file_chunk(self, chunk):
pass
def on_file_finished(self, file_size):
pass
这部分效果很好。
现在我需要在对它们进行修改后将文件分块上传到最终目的地。我正在寻找一个有点像这样的工作流程:
import requests
class MyUploadHandler:
def on_file_started(self, file_name):
self.request = requests.put("http://secondaryuploadlocation.com/upload/%s" %
(file_name,), streaming_upload = True)
def on_file_chunk(self, chunk):
self.request.write_body(transform_chunk(chunk))
def on_file_finished(self, file_size):
self.request.finish()
有没有办法使用 Python requests 库来做到这一点?似乎它们允许可以读取类似文件的上传对象,但我不确定这到底意味着什么以及如何将其应用于我的情况。如何提供这样的流式上传请求?