2009-12-16 2 views
0

나는 사용자가 자신의 파일을 앱에 업로드 할 수있는 웹 애플리케이션을 작성 중이다. 사용자가 "업로드"버튼을 클릭하면 파일이 HTTP 서버에 업로드됩니다. 사용자는 경로에서 파일을 가져 와서 파일을받을 수 있습니다 ... ... 예 : http://www.demo.com/user/abc/download/the_file.jpg사용자가 HTTP 서버의 파일에 액세스하는 것을 제한하는 방법은 무엇입니까?

그러나 나는 모든 사람이 경로를 사용하여이 파일에 액세스 할 수 있음을 알았습니다. 어떻게해야합니까? 또는 등록 된 사용자 또는 파일 소유자 만 파일을 다운로드 할 수있는 파일을 관리하는 더 좋은 방법이 있습니까?

+0

내 대답이 도움이 되었습니까? – Ahmy

답변

1

스크립트에서 직접 파일을 검색하는 것은 성능 문제로 인해 옵션이 아니며 메모리 제한 때문에 BIG 파일을 제공 할 수 없습니다.

가장 좋은 방법은 Apache 모듈 mod_xsendfile을 사용하는 것입니다. 모든 요청을 PHP/Perl/Python 스크립트로 리디렉션하면 HTTP 헤더가 "안녕 아파치,이 파일 대신"으로 설정되고 mod_xsendfile이 처리합니다.

그리고 클라이언트는이 인증 없이는 파일을 다운로드 할 수 없습니다.

1

apache httpd와 같은 것을 사용하는 경우 .htaccess 파일을 사용할 수 있으며 사용자가 파일 시스템의 경로에있는 파일에 계속 액세스하려는 경우 사용자 또는 그룹에 제공되는 디렉토리를 사용할 수 있습니다. 당신이 디렉토리를 잠그고 파일 전송을 관리하는 스크립트가있는 경우

, 당신은 내가 그와 같은 스크립트 방법을 사용하는 경향이 스크립트에서 권한을 확인하고 파일이 요청 된 사용자 또는 (403)

을 제공 할 수 있습니다 권한을 관리하는 방법과보다 복잡한 액세스 시나리오를보다 효과적으로 제어 할 수 있습니다.

관련 문제