Tôi cần trả về một tệp khá lớn (11MB) cho người dùng. Vì một số lý do nhất định, tôi không thể chỉ cung cấp url trực tiếp cho tệp (http://www.sample.com/mybigfile.exe); thay vào đó, nó phải được truy cập thông qua mã.Kích thước tối đa của đối tượng có thể được lưu trong memcached với memcache.py
Thay vì phải đọc nó từ đĩa hơn và hơn, tôi nghĩ về việc lưu nó trong memcached (nếu điều này không phải là một ý tưởng tốt, cho tôi biết). Tất cả mọi thứ dường như làm việc, tốt (không có lỗi), nhưng khi tôi cố gắng để lấy các tập tin từ memcached tôi luôn luôn nhận được Không, như thể các tập tin không được lưu trữ.
Có giới hạn kích thước cho những gì có thể được lưu không?
Dưới đây là các mã:
def download_demo():
"""
Returns the demo file
"""
KEY = "xyz"
TIME = 86400 #24 hours
buff = memc.get(KEY)
if not buff:
file = open(FILENAME, 'r')
buff = file.read()
memc.set(KEY, buff, TIME)
print "Content-Type:application/x-download\nContent-Disposition:attachment;filename=%s\nContent-Length:%s\n\n%s" % (os.path.split(FILENAME)[-1], len(buff), buff)
Nếu memcache đang chạy cục bộ, có thể bạn sẽ không thực sự giành được nhiều thứ bằng cách đọc nội dung từ đó, vì giả sử có đủ RAM, hệ thống tệp sẽ có bộ nhớ đệm trong RAM. – radiospiel