gpt4 book ai didi

android - Django 媒体文件和改造

转载 作者:太空宇宙 更新时间:2023-11-04 05:42:04 26 4
gpt4 key购买 nike

我们在一个项目中使用 Android 前端django-rest-framework 后端

媒体文件是通过 Django Media files 提供的,我们可以缓存媒体文件并在离线时在应用程序中查看它们。

urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'auth/login/', 'rest_framework_jwt.views.obtain_jwt_token',name='jwt_login'), # post username & password to get token
...

) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

问题是我们需要对媒体文件应用授权,所以我从 url 中删除了 media paths 并添加了一个 View 来完成这项工作

@api_view(['GET'])
def media_image_handler(request,url):
# extra code before serving media
...
...
# read and return media file to response

并且 url.py 更改为:

urlpatterns = patterns('',
url(r'^media/(?P<url>.*)/$',media_image_handler, name='media'),
url(r'^admin/', include(admin.site.urls)),
url(r'auth/login/', 'rest_framework_jwt.views.obtain_jwt_token',name='jwt_login'),
)

现在我们有两个问题:

  1. 由于额外的代码响应时间变得更长
  2. 无法离线加载缓存文件

现在问题:

Is there any suitable method that can be used instead? For example instead of full authentication use a random generated file names that cannot be guessed easily or whatever?

我们将不胜感激任何有用的意见

P.S. We are using Retrofit and Picasso on Android

最佳答案

首先:静态文件应该由像 nginx 或 lighttpd 这样的服务器提供服务。关于你的问题。我认为您是在谈论受控下载。该功能调用X-Sendfile,在nginx等服务器中实现。您可以在 Nginx 文档中阅读相关信息。 https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/

关于android - Django 媒体文件和改造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33565774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com