大きなファイルを追加データでアップロードする方法を探していましたが、解決策はありません。ファイルをアップロードするには、私はこのコードを使用していたのだが、小さなファイルを正常に動作されています:pythonリクエストで大きなファイルを追加データでアップロードする
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)
を設定することですが、私は追加する必要はありません{「複合」:「NONE」}データを。そうでない場合、サーバーはファイルを認識しません。
models.py、PreparedRequestクラス、prepare_bodyメソッドのコードを見ると、リクエストを使用して大きなファイルを追加データでストリーム配信する方法はありません。 –