2013-12-20 2 views
1

대용량 파일 (수 GB 대용의 zip 파일)을 S3에 업로드해야하며 Carrierwave에서 해당 파일의 다운로드/배포를 관리하고 싶습니다.Carrierwave로 대용량 파일을 S3에 업로드

의미, 사용자가 Carrierwave에게 지불 할 때 자동으로 동적 URL을 생성하여 전송할 수 있습니다. 이미이 작업을 수행하는 방법을 알고 있지만, Carrierwave를 통해 몇 십 메가 바이트 (S3에서 훨씬 적은 수의 GB)를 넘는 파일을 업로드 한 적이 한번도 없었습니다.

HTTP 연결의 박편 감을 감안할 때,이 방법은 차선책이라고 생각합니다.

업로드 할 파일이 많지 않습니다 (최대 10-20 개). 업로드하지 않을 것입니다. 고객이 파일을 구매/다운로드하고 업로드하지 않는 점포가 될 것입니다.

파일을 내 S3 버킷에 별도로 업로드하는 방법이 있다면 (FTP, git 또는 기타 메커니즘) 별도의 방법으로 Carrierwave를 통해 내 앱에 연결하는 것이 좋을 것입니다.

어떻게 접근하면 좋을까요?

답변

3

또한 첫 번째 파일을 업로드 할 때 Heroku 30 초 제한 시간이 있음을 잊지 마십시오. S3는 Heroku가 우회 S3에 직접 업로드 양식을 제시 직접 업로드를 지원합니다, 당신은 다음과 응용 프로그램에 다시 전화를받을 -

  • 직접 업로드 :

    그래도 걱정하지 마세요 , 옵션이 있습니다 업로드 된 파일 세부 정보 처리 (https://github.com/dwilkie/carrierwave_direct)

  • S3에 업로드 한 다음 애플리케이션에 버킷/폴더를 노출하여 모델에 연결하십시오. 우리는이 방법을 여러 고객과 함께합니다. 그들은 Transmit (Mac 클라이언트)을 사용하여 S3에 큰 애셋을 업로드 한 다음 앱을 방문하여 애셋을 Rails 모델에 연결합니다.

또한 S3는 HTTP 기반 서비스이므로 HTTP를 통해서만 업로드 할 수 있습니다.

+0

두 번째 옵션을 좋아합니다. 즉 전송을 사용하고 앱을 방문하여 애셋을 Rails 모델에 연결합니다. 앱 사이드에서 어떻게 할 수 있습니까? 코드는 어떻게 생겼을까요? 아니면 Carrierwave 문서에서 저에게 어떻게하는지 알려줄 수 있습니까? – marcamillion

관련 문제