2010-06-14 10 views
1

내가 만드는 앱을 위해 Amazon S3를 문서 저장소에 사용하기로 결정했습니다. 내가 실행 한 한 가지 문제는 S3에 파일을 업로드해야 할 때 사용자가 CRUD 작업을 수행 할 수 있도록 내 앱에서 문서 개체를 만들어야한다는 것입니다.Amazon S3에서 이중 파일 업로드를 방지하려면 어떻게합니까?

한 가지 해결책은 이중 업로드를 허용하는 것입니다. 사용자가 내 Rails 앱이 살아있는 서버에 문서를 업로드합니다. 객체의 유효성을 검사하고 생성 한 다음 S3에 전달합니다. 한 가지 문제는 진행률 표시기가 더 복잡해진다는 것입니다. 기본적으로 사용하지 않는 플러그인을 사용하면 파일이 내 서버에 있기 때문에 파일 업로드가 완료되었음을 알 수 있지만 파일이 내 서버에서 서버로 이동하면 상당한 지연이 발생합니다. 이것은 또한 불필요한 대역폭을 도입합니다. (적어도 필요하지는 않습니다.)

다른 해결책은 한 AJAX 요청으로 S3에 파일을 직접 업로드하는 것입니다. 두 번째 AJAX 요청을하면 내 데이터베이스에 개체를 저장하십시오. 한 가지 문제는 업로드 후 파일의 유효성을 검사해야한다는 것입니다. 이는 유효성 검사가 실패 할 경우 S3에서 정리 코드를 실행해야 함을 의미합니다.

둘 다 똑같이 혼란스럽게 보입니다.

누구나 공유 할 마음이없는 우아한 작품이 있습니까? 나는 이것이 오늘날 "클라우드 스토리지"가 널리 보급 된 일반적인 상황이라고 생각합니다. 어쩌면 나는이 잘못을보고있다.

+0

비슷한 질문을 던졌습니다. http://stackoverflow.com/questions/5796468/amazon-s3-multipart-upload-with-plupload-and-rails-3 문제를 해결하려고하기 때문에 질문이 비슷합니다. 문제는 아니지만 나는 두 배의 시간을 없애기 위해 청킹을 사용하는 접근법을 생각했다. 귀하의 신청서는 EC2에 있습니까? 내 것이지만 큰 파일을 다시 저장하는 것은 여전히 ​​느립니다. – Amala

답변

2

클립 클립을 사용하지 않는 특별한 이유가있는 경우가 아니라면 적극 권장합니다. 지연 작업 및 지연된 클립과 함께 사용하면 사용자는 필요한 모든 유효성 검사를 수행하는 서버 파일 시스템에 파일을 업로드합니다. 그런 다음 지연된 작업이 처리되어 s3에 저장됩니다. 실제로 설정하기가 쉽고 사용자 환경이 개선되었습니다.

관련 문제