Django - Compreendendo o X-Sendfile

Eu tenho feito algumas pesquisas sobre downloads de arquivos com controle de acesso, usando o Django. Meu objetivo é bloquear completamente o acesso a um arquivo, exceto quando acessado por um usuário específico. Eu li que ao usar o Django, o X-Sendfile é um dos métodos de escolha para conseguir isso (com base em outras questões de SO etc.). Meu entendimento rudimentar do uso do X-Sendfile com o Django é:

usuário solicita que o URI obtenha um arquivo protegi aplicativo @Django decide qual arquivo retornar com base na URL e verifica a permissão do usuário, et aplicativo @Django retorna uma resposta HTTP com o cabeçalho 'X-Sendfile' definido como o caminho do arquivo do servidor O servidor da web encontra o arquivo e o retorna ao solicitante (presumo que o servidor da web também retire o cabeçalho 'X-Sendfile' ao longo do caminho)

Comparado com o lançamento do arquivo diretamente do Django, o X-Sendfile parece ser um método mais eficiente de obter downloads protegidos (já que posso confiar no Nginx para servir arquivos, vs Django), mas deixa duas perguntas para mim:

Minha explicação sobre o X-Sendfile é pelo menos abstratamente corret É realmente seguro, desde que eu não forneça acesso HTTP front-end normal (por exemplo,http: //www.example.com/downloads/secret-file.jp) no diretório em que o arquivo está armazenado (ou seja, não o mantenha em meupublic_html diretório)? Ou um usuário experiente em tecnologia poderia examinar cabeçalhos etc. e fazer engenharia reversa de uma maneira de acessar um arquivo (para depois distribuir)? É realmente uma grande diferença no desempenho. Vou atrapalhar meu servidor de aplicativos fornecendo downloads em pedaços de 8b de arquivos de 150Mb diretamente do Django, ou isso não é um problema? A razão pela qual pergunto é porque, se as duas versões são quase iguais, a versão do Django seria preferível devido à minha capacidade de fazer coisas em Python, como registrar o número de downloads concluídos, contar a largura de banda dos downloads et

Desde já, obrigado

questionAnswers(1)

yourAnswerToTheQuestion