2010-11-28 1 views
1

내 목표 :요청 당 및/또는 자원별로 다운로드의 속도를 제어 (그리고 선착순 대기 시스템을 제공)

내가 사진 폴더를 호스팅하고 싶지만의 경우 언제든지 100 개의 파일을 다운로드 중입니다. 새 다운로더/요청을 '대기중인 페이지'로 리디렉션하고 요청한 콘텐츠를 다운로드 할 때까지 대략적인 카운트 다운 시계와 줄을 제공하고 싶습니다. 그런 다음 직접 콘텐츠로 리디렉션하거나 (이상적으로) 클릭 할 수있는 버튼 (토큰, 만료 일련 번호)을 준비하면 콘텐츠로 가져옵니다.

사이트는 rapidshare와 같이 사이트가 이와 유사한 작업을 수행하는 것을 보았습니다. 그러나이 유형의 설정에 대한 오픈 소스 예제를 보지 못했습니다. 여러 기술을 결합하고 요청 헤더를 수정하는 것이 좋을까요?

도움/아이디어를 제공해 주시면 대단히 감사하겠습니다.

답변

0

트위스트 네트워크 엔진이 가장 적합한 답변입니다. 당신이 가질 수있는 것은 다운 로더가 최대 100 x의 사람들에게 서비스를 제공 할 수 있다는 것입니다. 대기열이 가득 차면 대기 루프에 사람들을 보냅니다. 대기 루프에서 대기합니다. 대기 시간은 x 초이며 대기열이 가득 찼는 지 확인합니다. 만료, 다른 사람이 대기 중인지 확인하십시오.이 티켓이 처음 도착한 경우 다운로드 대기열 맨 위로 이동하십시오. TCP/IP 연결이 뒤틀린 상태에서 클라이언트의 제어 수준이 매우 미묘하여 이상하고 훌륭한 방법으로 힘을 실어 줄 수 있으며 확장 성이 뛰어난 대화식 트위스티드 HTTP 서버로 구축 할 수 있습니다. 통제 수준이지만 실제로 자원을 제공 할 수 있습니다.

가장 간단한 방법은 티켓 풀입니다. 다운로드가 완료되면 다운 로더는 다른 플레이어가 걸릴 티켓을 돌려 놓습니다.

+0

Twisted의 특정 기능은 무엇입니까? 해당 문서의 어디에서나 티켓에 대한 참조가 보이지 않습니까? 그리고 '풀'에 대한 모든 것은 스레드 풀링입니다. 처음부터이 시스템을 작성해야한다면 Python을 사용하고 싶습니다. 그래서 Twisted를 사용하는 것이 좋습니다. – hUx