2009-08-11 4 views
5

그래서 저는 Paperclip과 AWS-S3을 사용하고 있습니다. 그리고 그것은 훌륭하게 작동합니다. 단지 한 가지 문제가 있습니다. 정말 큰 파일을 업로드해야합니다. 50 메가 바이트가 넘습니다. 그래서, nginx는 죽습니다. 그래서 분명히 Paperclip은 S3에 가기 전에 디스크에 물건을 저장합니까?종이 클립, 대용량 파일 업로드 및 AWS

이 부분은 really cool article입니다.하지만 디스크에서 먼저 처리 한 다음 백그라운드에서 다른 작업을 수행하는 것으로 보입니다.

이상적으로, 나는 백그라운드에서 파일을 업로드 할 수있을 것입니다. 필자는 PHP로 이런 일을 경험했지만, 아직 레일즈에서는 아무것도하지 못했습니다. 누구도 나를 일반적인 방향으로 안내 할 수 있습니까?

답변

5

아마 ngix configs에서 시간 초과를 늘려야합니까?

1

현재 내 게시물에 관심이있을 수 있습니다

http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip

그것의 여러 파일을 업로드에 대해 (진행률 표시 줄과 동시에) 직접 S3에 서버를 타격하지 않고.

+0

감사합니다. 내가 볼 수있는 유일한 문제는 FancyUpload가 Flash에 있고, Flash가 업로드를 시작하기 전에 전체 파일을 메모리에로드해야한다는 것입니다. 그래서 300MB 파일을 업로드하고 싶다면 그만큼의 RAM을 가져야합니다 ... 내가 테스트 한 플래시 업 로더가 Firefox 충돌을 일으켰으며 컴퓨터에 4GB가 있습니다. 그러나이 기사는 여전히 흥미 롭습니다. 나중에 다시 언급 할 것입니다 ... –

+0

아, 참으로 단점이 있습니다! 나는 그것에 대해 몰랐다. –

+2

업로드하기 전에 전체 파일을 메모리에로드하는 Flash에 대한 설명은 더 이상 사실이 아닙니다. 그들은 그것을 지금 필요한 것만 버퍼링하는 곳으로 변경했습니다. – iwasrobbed

5

서버를 완전히 무시하고 S3에 직접 업로드하면 시간 초과를 방지 할 수 있습니다. 헤로쿠에서도 똑같은 일이 일어납니다. 당신이 레일 (3)을 사용하는 경우, 내 샘플 프로젝트 확인하시기 바랍니다 : 레일 (3)을 사용하여

샘플 프로젝트를 플래시와 Mootools의 기반 FancyUploader는 S3에 직접 업로드 : https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader

샘플 프로젝트 레일 (3)을 이용하여, 플래시/Silverlight를/GoogleGears/BrowserPlus 및 jQuery를 기반 Plupload가 S3에 직접 업로드 : https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload

을 그건 그렇고, 당신은 (니코가 쓴)이 블로그 게시물 같은 것을 사용하여 종이 클립과 사후 처리를 수행 할 수있는 작업에 대해 설명합니다

http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip

0

비슷한 문제가 있었지만 클립, 승객 및 아파치를 사용하고있었습니다.
nginx와 마찬가지로, apache에는 아파치에 Timeout 지시어가있어서 문제를 해결하기 위해 늘렸다.

큰 파일을 업로드 할 때 승객이하는 일도 흥미 롭습니다.
8K 이상은/tmp/passenger에 기록됩니다. 아파치에 권한이 없으면 500 개의 오류가 발생합니다.

다음은 기사입니다.
http://tinyw.in/fwVB