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