2010-12-28 5 views
0

Mongoid, carrierwave 및 gridFS를 사용하여 업로드를 저장합니다.MongoDB, Carrierwave, GridFS 및 파일 복제 방지

예를 들어 파일 업로드 (사진)가 포함 된 모델 아티클이 있습니다.

class Article 
    include Mongoid::Document 
    field :title, :type => String 
    field :content, :type => String 
    mount_uploader :asset, AssetUploader 
end 

하지만 다른 파일에 동일한 파일을 여러 번 업로드하는 경우 파일을 한 번만 저장하고 싶습니다.

GridFS에 MD5 체크섬이있는 것을 보았습니다.

동일 파일의 중복을 방지하는 가장 좋은 방법은 무엇입니까?

편집 : 실제로 내 웹 사이트에서 사용자는 파일을 업로드 할 수 있습니다. 하지만 동일한 파일을 여러 개 저장하지 않으려면 연관 테이블을 통한 링크 만 만들고 싶습니다. 어렵지는 않지만 아래에 지정된 라이브러리를 수행하는 방법. 당신은 어떤 생각이있어.

감사

답변

0

중복 제거는 아주 잘 응용 프로그램에 따라 가치있는 목표 일 수 있지만이 문제를 접근에 내 첫 번째 본능은 주위를 회전하는 것입니다 - 중복 업로드를 많이 기대하는 이유는 무엇입니까? 사용자가 불필요한 시간을 업로드 할 필요가 없도록하고 중복 된 사항을 처리하는 데 불필요한 노력을 할애 할 필요가 없도록 가능성을 줄일 수 있습니까?

어떤 새로운 기사를 작성하거나 필요한 경우 새가 업로드 될 때 당신이 Asset 모델을 만든 다음, 그에게 Articlereferences_one :asset을 업 로더를 연결하고 사용자가 이미 자산에서 선택할 수 있다면?

간략한 예제를 제공하는 경우 응용 프로그램 도메인을 이해하지 못할 수도 있습니다 (더 자세히 설명해주십시오). 중복이 여전히 실제 문제 일 수는 있지만, 왜 중요한 중복이 필요한지 묻는 것으로 시작합니다. 다음에 문제를 해결하기 위해 많은 노력을 기울이기 전에 앱 및 데이터 세트에 실제로 얼마나 많은 문제가 있는지에 대한 데이터를 수집합니다.

+0

답장을 보내 주셔서 감사합니다. 내 게시물을 편집 할거야. – Arkan