2
我们在Android frontend
和django-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个问题:
- 由于额外的代码响应时间变得更高
- 缓存文件无法加载离线
现在的问题:
是否有可以用来代替任何合适的方法? 例如,而不是完整的身份验证使用一个随机生成的文件名称,不能轻易猜出或任何?
我们会明白任何有用的意见
附:我们在Android上使用Retrofit和Picasso