2010-08-03 9 views
4

Ruby를 사용하여 대용량 파일을 서버에 업로드하는 가장 좋은 패턴이 무엇인지 궁금합니다.Ruby를 사용하여 대용량 파일 업로드

나는 Rails and Large, Large file Uploads: Looking at the alternative을 찾았지만 어떤 구체적인 해결책도 제공하지 않습니다.

독립 실행 형 모드로 실행되는 간단한 업로드 서버에서 작업하고 있기 때문에 Rails를 사용하고 싶지 않습니다. 나는 Sinatra가 열쇠일지도 모른다고 생각하지만, Timeout을 높이 지 않고 실행하려면 어떤 웹 서버를 사용해야하는지 모른다.

동시 업로드를 허용하려면이 웹 서버가 필요합니다.

업데이트 : "큰 파일"이란 200MB에서 5GB 사이를 의미합니다.

UPDATE2 :이 파일은 비디오 (내 경우)이므로 YouTube와 같은 최대 크기 2GB를 처리 할 수 ​​있습니다.

+0

'큰'파일 (업로드하려는 일반적인 파일 크기)을 정의 할 수 있습니까? – Brian

+0

5GB와 같은 것. – garno

+1

이 상황에서 S3를 활용하는 것에 대해 생각해보십시오. 그런 대형 파일을 수용하는 것은 비용이 많이들 수 있습니다 - S3는 상당히 저렴합니다. 관심이 있다면 s3 용으로 구성된 클립 클립을 사용하십시오. 이 젬은 일반적으로 Rails와 함께 사용되지만, Ruby만으로도 사용할 수있는 확실한 기회가 있습니다. - 나는 이것이 당신이 요구하고있는 것과는 꽤 거리가 멀다는 것을 안다. 그러므로 대답이 아니라 대답이다. 행운을 빌어 요. –

답변

0

괜찮습니다. 여기에 약간의 거리가 있지만, 업로드 대상으로 couchdb를 사용한다면 시간 초과 문제를 해결할 수 있습니다. 이 예제에서는 couchdb를 "임시 메모리"로 간주합니다. 다운로드가 완료되면 couchdb에서 파일을 가져 와서 원하는대로 할 수 있습니다. 드라마없이 dsl 라인을 통해 9GB의 파일을 couchdb로 업로드 할 수있었습니다. 약간의 독서가 걸릴 수 있지만 제대로 작동한다고 생각합니다.

내가 당신이 토끼 구멍이 그래서 내가 당신에게

+0

나는 그 아이디어가 정말 마음에 든다. 나는 오늘 시도하고있다. :) – garno

+0

나는 이것이 상당히 스트레칭이며, 파일 업로드를 지원하기 위해 앱에 couchdb를 구현해야한다고 생각한다. 나는 그 아이디어가 마음에 든다. –

0

승객이 별도의 아파치를 사용하는 것이 좋습니다 좀 더 포인터를 줄 수 아래로 이동 싶다면 알려주세요), 그것은 다른 사람과 좋은 연극 있도록

CouchDB를 많은 레일 보석을 가지고/nginx 모듈은 업로드를 처리합니다.

+1

이것을 구현하는 방법에 대한 단서가 있습니까? 대용량 파일을 처리하는 nginx + 승객에 대한 문서를 찾을 수 없습니다. – garno

+0

흠. 아파치에 대한 옵션이 있지만 nginx에 대한 것 같지 않아? 어쩌면 그것은 업로드를 허용 할 수있는 일반적인 nginx 지시어 일뿐입니다 ... http://blog.schuerrer.org/post/571570048/file-upload-progress-done-right 도움이 될 수도 있습니다. – rogerdpack

관련 문제