我正在用Django生成tar.gz文件,并将它保存到/home/foo/foo.tar.gz
之类的地方,但我不知道在django视图下提供这些生成文件的好方法。如何通过django提供生成的文件
我正在使用return HttpResponseRedirect("/home/foo/foo.tar.gz")
,但它实际上不是一个好的方法来提供tar.gz文件,因为生成的tar.gz文件路径从我的linux服务器的/
(根目录)开始,而不是相对路径。
谢谢。
我正在用Django生成tar.gz文件,并将它保存到/home/foo/foo.tar.gz
之类的地方,但我不知道在django视图下提供这些生成文件的好方法。如何通过django提供生成的文件
我正在使用return HttpResponseRedirect("/home/foo/foo.tar.gz")
,但它实际上不是一个好的方法来提供tar.gz文件,因为生成的tar.gz文件路径从我的linux服务器的/
(根目录)开始,而不是相对路径。
谢谢。
只需发送它in the response。
如果你不打算通过Django进行身份验证,你可以使用http服务器(nginx,lighttpd,apache等)来提供服务 - 这可以降低服务器的影响。
您可以定义相对于MEDIA_ROOT
或settings
中的另一个设置的重定向路径 - 正如James所说的,如果您尚未配置http服务器来处理这些文件,那么您一定要考虑配置它。
# settings.py
TARBALL_ROOT = '/home/foo/tarballs/'
# views.py
import os
from django.conf import settings
def your_view(request):
# do some stuff
filepath = os.path.join(settings.TARBALL_ROOT, 'relative/path/from/media/root'
return HttpResponseRedirect(filepath)