2012-05-11 5 views
0

여기 거래가 있습니다. 일부 파일을 판매 중이며 다운로드 할 수 있습니다.인증 된 사용자를 위해 파일을 직접 다운로드하십시오.

따라서 파일을 지불 한 사용자 만 다운로드 할 수 있습니다. 많은 이유로 PHP 스크립트를 통해 다운로드하지 않으려합니다. - 파일이 큽니다 (일부는 ~ 5GB입니다) - 다운로드가 부숴지면 다시 시작해야합니다.

어떨까요? 파일을 다운로드 할 수있는 사용자를 식별하는 데 도움이되는 모든 전략과 PHP 스크립트를 사용하여 파일을 스트리밍하는 대신 Apache가 작업을 수행하도록 할 수 있습니다 (다운로드 링크를 직접 제공).

어떤 아이디어?

답변

1

mod auth token은 어떻습니까?

http://code.google.com/p/mod-auth-token/

은 아주 좋은 해결책이 될 수 있습니다 - 나는 비슷한 전략하지만 내 자신의 모듈을 사용하여 사용합니다.

0

모든 URL을 공유 할 수 있으므로 파일이 다운로드되었다는 표시를 유지해야합니다. 그렇지 않으면 유료 방문자 중 하나가 URL을 게시 할 수 있으며 누구나 다운로드 할 수 있습니다.

PHP를 사용하면 전체 파일이 전송 된 후 (대략 다운로드가 성공적임을 나타냄) 플래그를 설정할 수 있으므로 파일을 다시 다운로드 할 수 없습니다.

어떤 종류의 인증을 사용할 수도 있지만 다시 자격 증명을 공유 할 수 있습니다.

0

다소 쉬운 해결책 중 하나는 virtual 기능을 사용하는 것입니다. 사용자를 인증 한 다음 apache에 요청을 전달합니다. 즉 이 아니며을 사용하여 파일을 스트리밍합니다.

0

일부 스마트에서는 실제 파일에 대한 심볼릭 링크를 만들고 파일을 다운로드 한 후 해제 할 수 있습니다.

사용자 구매 파일 : 심볼 링크를 만들고 고유 한 URL을 사용자에게 보냈습니다. 그런 다음 잠재적으로 로그 파일을 모니터하고 파일 다운로드시 symlink를 사용 불가능하게 할 수 있습니다. 또는 로그 파일에 액세스 할 수 없으면 사용자가 방문 할 때 심볼릭 링크 만 생성 한 PHP 파일로 사용자를 보내고 특정 시간이 지나면 심볼릭 링크를 해제 할 수 있습니다. 확실하지 않습니다.)

완전한 해결책이 아니며 주위에 아이디어를 던지십시오.

관련 문제