でアップロードされたファイルを受け入れる Django ビューがありますPUT
。独自のアップロード ハンドラを作成し、次のようにデータをチャンクで処理しています。
handler = MD5ChecksumUploadHandler()
handler.new_file(field_name="file", file_name="unknown",
content_type=request.META.get('CONTENT_TYPE', 'application/octet-stream'),
content_length=int(request.META.get('CONTENT_LENGTH', 0)))
upload_size = 0
while True:
# read the request body in chunks
chunk = request.read(handler.chunk_size)
if chunk:
handler.receive_data_chunk(chunk, start=None)
upload_size += len(chunk)
else:
break
# return the MD5ChecksumUploadedFile
return handler.file_complete(upload_size)
私が見つけたように、メソッドはリクエストの本文ではなく、request.read
実際のリクエストの先頭から読み取りを開始します。これにより、MD5 チェックサムが失敗します。これは、何かがうまくいかないことを知っているため、偶然にも良いことです。
生のリクエストだけでなく、実際のリクエスト本文を読み取る方法はありますか?