배포 아키텍처는 어떤 모양입니까? 나는 당신이 "다중 서버"라고 말할 때 약간 혼란 스럽습니다 - 여러 개의 mongod 인스턴스를 의미합니까? 또한 요구 사항을 지정할 때 약간 혼란 스럽습니다. 요구 사항 1에 따라 S3에 업로드하는 경우 gridfs 파일을 제거해야합니다. 그러나 요구 사항에 따라 S3와 Gridfs 모두에 존재할 수 없으므로 요구 사항 2는 첫 번째 모순과 모순되는 것처럼 보입니다. 즉, 처음에는 gridfs에 존재하지 않아야합니다. Gridfs와 S3 모두에서 일부 파일을 보존하고 있습니까?
복제본 세트 또는 샤드 드 클러스터에서 실행중인 경우 gridfs 컬렉션에 tailable cursor을 만들 수 있습니다 (권장하지 않지만 단일 노드에서도이 작업을 수행 할 수 있습니다). 삽입 작업 ('op'처럼 보일 것입니다 : 'i')을 볼 때 스크립트를 실행하거나 응용 프로그램에서 gridfs에서 파일을 가져 와서 해당 파일을 s3으로 푸시 할 수 있습니다. 마찬가지로 삭제 작업 ('op': 'd')이 표시되면 s3에서 파일을 간단히 삭제할 수 있습니다.
커서의 장점은 비동기 작업을 허용한다는 것입니다. 다른 프로세스가 다른 서버의 oplog를 모니터링하고 적절한 작업을 수행 할 수 있습니다.
확실하지 않지만 [this] (http://stackoverflow.com/questions/17871568/rails-3-paperclip-can-i-store-images-both-on-s3-locally/17893929#17893929) 도움말 – Viren