追加データを含む大きなファイルをアップロードする方法を探していましたが、解決策がないようです。ファイルをアップロードするために、私はこのコードを使用しており、小さなファイルでうまく機能しています:
with open("my_file.csv", "rb") as f:
files = {"documents": ("my_file.csv", f, "application/octet-stream")}
data = {"composite": "NONE"}
headers = {"Prefer": "respond-async"}
resp = session.post("my/url", headers=headers, data=data, files=files)
問題は、コードが送信前にファイル全体をロードすることであり、大きなファイルをアップロードすると MemoryError が発生します。私は周りを見回しましたが、データをストリーミングする方法は設定することです
resp = session.post("my/url", headers=headers, data=f)
しかし、データに {"composite": "NONE"} を追加する必要があります。そうでない場合、サーバーはファイルを認識しません。