2015-11-06 87 views
2

我们在Android frontenddjango-rest-framework backend的项目上工作。Django媒体文件和改造

媒体文件通过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) 

的问题是,我们需要的媒体文件适用的授权,所以我已经删除media paths from urls和添加视图来完成这项工作

@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'), 
) 

现在我们得到了2个问题:

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

现在的问题:

是否有可以用来代替任何合适的方法? 例如,而不是完整的身份验证使用一个随机生成的文件名称,不能轻易猜出或任何?

我们会明白任何有用的意见

附:我们在Android上使用Retrofit和Picasso

回答