Django를 사용하여 다운로드 가능한 파일 제공
웹사이트 사용자는 파일을 다운로드할 수 있는 기능이 필요한 경우가 많지만, 파일을 보호하고 직접 다운로드를 방지하는 것은 중대한. 한 가지 해결책은 사용자가 파일에 직접 액세스할 수 없도록 파일 경로를 모호하게 만드는 것입니다.
이를 달성하려면 다음과 같은 매개변수가 포함된 URL을 생성하세요.
http://example.com/download/?f=somefile.txt
다운로드 가능한 파일이 있다고 가정해 보겠습니다. /home/user/files/ 폴더에 있습니다. Django는 파일을 표시하기 위해 특정 URL 및 View가 필요 없이 다운로드할 파일을 제공하도록 구성할 수 있습니다.
X-Sendfile 모듈이 최적의 솔루션을 제공합니다. 이를 통해 Django는 파일을 찾고 헤더를 지정할 수 있으며, 실제 파일 제공은 웹 서버(예: Apache, Lighttpd)에서 처리됩니다. mod_xsendfile을 설치하고 구성한 후 보기와 통합하세요.
from django.utils.encoding import smart_str response = HttpResponse(content_type='application/force-download') response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(file_name) response['X-Sendfile'] = smart_str(path_to_file) return response
이 접근 방식을 사용하려면 mod_xsendfile을 지원하는 서버 제어 또는 호스팅 회사가 필요합니다.
추가 고려 사항:
위 내용은 Django는 어떻게 X-Sendfile(또는 X-Accel-Redirect)을 사용하여 다운로드 가능한 파일을 안전하게 제공할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!