2012-07-02 4 views
5

시나리오 : Django 앱은 다른 모델의 개체와 관련된 많은 작은 파일을 생성합니다.많은 파일을위한 Django 파일 시스템 저장

필자는 기본 Filestorage를 사용할 때 단일 디렉토리에서 많은 수의 파일 생성을 피하기 위해 많은 검색을 수행했습니다.

django-fsfield이 유일한 오픈 소스 솔루션입니까? dir에 많은 수의 inode를 수정하는 것이 좋습니다.

감사합니다.

답변

2

MongoDB 컬렉션에 콘텐츠를 저장하는 것이 좋습니다.

파일이 작기 때문에 파일 내용이 포함 된 binary field 하나를 사용하여 MongoDB 문서를 만들 수 있습니다. 이 경우 "Small"은 MongoDB 문서 크기 제한 (현재 16MB)보다 작습니다.

큰 파일을 저장해야하는 경우 Mongo는 gridfs을 지원합니다.

도 참조하십시오. When to use GridFS.

0

또한 파일이 작 으면 이진 필드가있는 데이터베이스 모델에 저장하고 16MB 이상의 작은 파일을 저장하고 다른 데이터베이스는 필요하지 않은 사용자 지정 저장 관리자를 사용할 수 있습니다.

2

나는 django-castor을 사용하고 있습니다.

장고 - 캐스터는 내용 주소 저장 백엔드을 제공 장고를위한 재사용 가능한 응용 프로그램입니다. 메인 클래스 인 djcastor.storage.CAStorageFileSystemStorage의 유형으로 의 SHA-1 다이제스트 파일에 저장됩니다.

  • 는 상관없이 동일한 파일 업로드 횟수, 그것은 오직 따라서 중복을 제거, 한 번 저장되지 않습니다.

  • 파일 이름은 의사 임의이며 16 진수 문자로만 구성되므로 파일 이름 충돌 또는 sanitization에 대해 걱정할 필요가 없습니다.

  • django-castor 샤시 파일은 다이제스트를 기반으로하여 업로드 디렉토리에 있습니다. 너무 많은 파일이 단일 디렉토리에있는 경우 파일 시스템 문제를 방지합니다.

관련 문제