python - 流媒体上传请求?

标签 python http python-requests

我正在 Python 中实现一个简单的上传处理程序,它将上传的文件分块读取到内存中,GZip 并对其进行签名,然后将它们重新上传到另一台服务器以进行长期存储。我已经设计了一种方法来使用我的网络服务器读取 block 中的上传内容,基本上我有一个这样的工作流程:

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 请求库来做到这一点?似乎they allow for file-like upload objects可以阅读,但我不确定这到底意味着什么以及如何将其应用于我的情况。如何提供这样的流式上传请求?

最佳答案

我建议使用 Python 的多处理模块。您可以使用该模块中的 apply_async 例程在每个 block 完成时上传它们,而不影响其他上传。然后您可以将它们放在一个临时文件夹中,在上传事件完成后,您可以将它们缝合在一起。

关于python - 流媒体上传请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15557841/

相关文章:

python - 如何避免anaconda将文件/包安装在C盘?

python - 通过 Google Cloud Speech API 获取每个转录单词的时间戳?

python - Dask:延迟与 future 和任务图生成

php - 由于 SSL,无法检查站点是启动还是关闭

php - cURL无法完全模拟HTTP Post

python - 用python获取http头(获取405)

python - 带有请求的 Post 方法

python - Scipy 稀疏行/列点积

带有 html 表的 php foreachloop

python - 如何使用请求从谷歌新闻链接获得重定向链接?