如何为临时url反向?



我有源urldomain.ex/dir/video.mp4

我有一个临时urldomain.ex/vlink/temp.mp4,我需要"连接"。来源domain.ex/dir/video.mp4

相同的域。但是文件有不同的名字,video.mp4 != temp.mp4

我使用nginx来提供源url

location /dir/ {
alias /media/videos/;
}

我当前的urls.py

path('vlink/<str:temp>', views.vlink, name='vlink'),

view.py

def vlink(request, temp):
# drop extension mp4
s = temp.split('.')[0] 
# I retrieve original file name
vid = TmpUrl.objects.filter(tmp_url = s).values('orig').first()
v = vid['orig']
the_url = '/dir/'+v+'.mp4'    
return redirect(the_url)

template.html

<video>
<source src="/vlink/{{vid}}.mp4" type="video/mp4">
</video>
我不需要简单的重定向。我需要隐藏源url。

我需要的:当用户点击播放,浏览器显示tmp url和播放vid没有重定向到源。

如何做到这一点?

最后,我找到了解决办法。Nginx的内部重定向+ Django的X-Accel-Redirect。

views.py

def vlink(request, temp):        
s = temp.split('.')[0]
vid = TmpUrl.objects.filter(tmp_url = s).values('orig').first()
v = vid['orig']
the_url = '/dir/'+v+'.mp4'        
response = HttpResponse(status=200)
response['Content-Type'] = 'video/mp4'
response['X-Accel-Redirect'] = the_url
return response

nginx.conf

location /dir/ {
internal;
alias /media/videos/;
}

相关内容

  • 没有找到相关文章

最新更新