如何通过 Xsendfile (Django) 使用下载的 url 内容

How to use downloaded url content with Xsendfile (Django)

我想使用 mod - xsendfile(我已下载并安装)保存来自 url、外部页面的内容,我在变量 one_download.I 中使用 urllib 和 urllib2 读入这些内容我是新手,不确定如何正确配置某些 x-sendfile 属性。在下面的代码中,我假设我可以将 one_download 中的 urllib 内容直接放入 xsendfile,而不是采取中间步骤将其保存到 txt 文件,然后将该 txt - 文件传递​​给 xsendfile。

import urllib2,urllib
def download_from_external_url(request):
    post_data = [('name','Dave'),]  
    # example url  
    #url = http://www.expressen.se/kronikorer/k-g-bergstrom/sexpartiuppgorelsen-rackte-inte--det-star-klart-nu/ - for example
    result = urllib2.urlopen(url, urllib.urlencode(post_data))

    print result
    one_download = result.read()
    # testprint content in one_download in shell 
     print one_download 



# pass content in one_download, in dict c,  to xsendfile
    c = {"one_download":one_download}
    c['Content-Disposition']= 'attachment; one_download=%s' %smart_str(one_download)
    c["X-Sendfile"] = one_download # <-- not working 

    return HttpResponse(json.dumps(c),'one_download_index.html', mimetype='application/force-download')

这不是 X-Sendfile 的用途;它用于提供磁盘上已有的静态文件,而无需通过 Django。由于您正在动态下载文件,并且它无论如何都在内存中,所以您最好直接提供它。