지리적으로 분산 된 여러 노드에서 플래시 비디오 파일을 S3 버킷으로 업로드하는 프로젝트가 있습니다.루비 파일 스트림 속도 제한
비디오 파일은 각각 약 2-3MB이며 노드 당 10 분당 하나의 파일 만 전송하지만 우리가 소비하는 대역폭은 ~ 20k/s로 제한되어야합니다. 미디어를 CDN으로 스트리밍하고 위치 때문에 최대 512KB 업로드 만 가능합니다.
나는 ASW-S3 보석을 조사해 왔지만 어떠한 속도 제한도 제공하지는 않지만 IO 스트림을 전달할 수 있음을 알고 있습니다. 이 점을 감안할 때 read
메서드를 재정의하는 속도 제한 스트림을 만드는 것이 가능한지 궁금합니다. 속도 제한 논리를 추가하고 (예 : 가장 간단한 형태로 읽기 간 sleep
) 재정의 (override)되는 메소드
내가 생각하는 또 다른 옵션은 인터넷 :: HTTP에 대한 코드를 해킹하고 while
루프를 사용하는 send_request_with_body_stream
방법에 제한 속도를 넣어,하지만 난 최선의 선택이 될 것이다 완전히 확신하지 않습니다.
나는 IO 클래스를 확장하려고 시도했지만, 전혀 작동하지 않았고 단순히 class ThrottledIO < IO
클래스를 상속 받으면 아무것도하지 못했습니다.
모든 의견을 크게 기뻐할 것입니다.