Django中的跨源文件下载

Django中的跨源文件下载,django,Django,我用django写了一个小网站。该网站托管在Pythonywhere上,而媒体文件是aws s3。我如何创建链接来下载这些文件,因为它们来自不同的来源。下面是我能够整理的内容,但它只会刷新页面 def download(request, slug): obj = get_object_or_404(Music, slug=slug) print(obj.audio_file.path) file_name = obj.title file_path = obj.a

我用django写了一个小网站。该网站托管在Pythonywhere上,而媒体文件是aws s3。我如何创建链接来下载这些文件,因为它们来自不同的来源。下面是我能够整理的内容,但它只会刷新页面

def download(request, slug):
    obj = get_object_or_404(Music, slug=slug)
    print(obj.audio_file.path)
    file_name = obj.title
    file_path = obj.audio_file.path
    with open(file_path, 'rb') as f1:
        response = HttpResponse(f1.read(), content_type='audio/mpeg')
        response['Content-Disposition'] = "attachment; filename=%s" % file_name
        return response
我的URL.py

path('<slug:slug>/', views.download, name='download'),
path('/',views.download,name='download'),
这是我的html

<a class="btn btn-info pull-right" href="{% url 'music:download' song.slug %}">DOWNLOAD</a>

如果您只需要站点上的一个从S3下载文件的按钮,只需将该按钮上的
href
属性更改为S3属性即可:

<a class="btn btn-info pull-right" href="s3 url goes here">DOWNLOAD</a>

您好,您必须确保
object.title
没有斜杠,文件名中不允许有斜杠。它没有任何斜杠
<a class="btn btn-info pull-right" href="http://bucket-name.s3-website.Region.amazonaws.com/{{ song.slug }}">DOWNLOAD</a>