python - django文件下载权限怎么处理
PHPz
PHPz 2017-04-18 09:41:29
0
2
355

涉及到文件下载权限控制,这方面一般怎么实现呢?有没有一些现成的库呢?

简单说,就是实现a.file这个文件,只允许特定用户,如jonh下载。

PHPz
PHPz

学习是最好的投资!

répondre à tous(2)
洪涛

C'est fait, merci.

1. Écrivez un point de vue


def download_key(request, key_file):
    user = request.user
    if not user.is_active:
        return HttpResponseForbidden(u'此文件需要登录才可访问')
    key = KeysManager.objects.get(key_file=key_file)
    if not user.is_superuser or user not in key.who_can_see.all():
        return HttpResponseForbidden(u'您没有权限访问些文件')
    key_file_path = os.path.join(key.key_file.storage.location, key.key_file.name)
    ret = FileResponse(open(key_file_path))
    ret['Content-Disposition'] = 'attachment; filename="%s"' % key.key_file.name
    return ret

2. Accrochez-vous à l'url

    url(r'^keys/download/(?P<key_file>.*)$', turing.views.filedown.download_key)
巴扎黑

Ce n'est peut-être pas un problème que le framework devrait gérer. Vous pouvez écrire quelque chose pour la gestion des autorisations, puis utiliser le décorateur pour l'accrocher à la fonction d'affichage afin de déterminer s'il dispose d'autorisations suffisantes.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal