アップロードされたファイルをチャンクでメモリ、GZip、および署名し、長期保存のために別のサーバーに再アップロードする単純なアップロード ハンドラを Python で実装しています。Web サーバーでアップロードをチャンクで読み取る方法を既に考案しており、基本的には次のようなワークフローがあります。
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 ライブラリを使用してこれを行う方法はありますか? 読み取り可能なファイルのようなアップロード オブジェクトを許可しているようですが、それが何を意味し、私の状況に適用する方法が正確にはわかりません。このようなストリーミング アップロード リクエストを提供するにはどうすればよいですか?