2010-01-17 23 views
2

我希望我的Django應用程序根據請求標頭和/或會話數據決定是否接受或拒絕上載。如果上傳被拒絕,我希望應用程序重置連接,而不是浪費時間接收和存儲可能會被拒絕的大文件。如何在Django完成之前拒絕上傳?

Django middleware看起來很有希望,但經過仔細檢查,看起來當請求觸及中間件時已經太晚了,整個上傳都被緩衝到某處(通常是RAM或磁盤)。

有沒有其他的鉤子或設置我可以用來實現這一目標?

回答

1

文件上傳處理程序是你要找的一樣的東西: http://docs.djangoproject.com/en/dev/topics/http/file-uploads/#modifying-upload-handlers-on-the-fly

編輯:看着文件上傳處理程序代碼後,似乎它是隻傳遞request.META,而不是整個請求對象 - 這可能或可能不包含您需要的信息。

另一方面,你可以從理論上重建存儲在cookie中的會話ID的會話數據。

+0

不錯!從META獲取cookies和會話不應該太難。 – 2010-01-18 00:41:27