Trong một yêu cầu GET
nhất định, tôi cần đọc tệp cục bộ, tùy thuộc vào thông số trong yêu cầu và gửi tệp đó trên luồng đầu vào của yêu cầu. Tôi phải làm nó như thế nào?Gửi tệp nhị phân trong Tornado
class GetArchives(tornado.web.RequestHandler):
def get(self, param1, param2):
path = calculate_path(param1, param2)
try:
f = open(path, 'rb')
# TODO: send this file to request's input stream.
except IOError:
raise tornado.web.HTTPError(404, 'Invalid archive')
Cảm ơn câu trả lời của bạn. Bạn nói điều này không được sử dụng cho các tệp lớn. Bất kỳ lý do cụ thể cho điều đó? – missingfaktor
Các tệp tôi sẽ xử lý sẽ có kích thước tối đa là 50 MB. – missingfaktor
@missingfaktor: Nó đọc toàn bộ tệp trong cùng một lúc, điều này sẽ làm tăng đáng kể mức sử dụng bộ nhớ. – nneonneo