2012-07-02 40 views
5

Kịch bản: Ứng dụng Django tạo nhiều tệp nhỏ liên quan đến các đối tượng trong các mô hình khác nhau.Lưu trữ hệ thống tệp Django cho số lượng tệp lớn

Tôi đã thực hiện rất nhiều tìm kiếm để tránh tạo số lượng lớn tệp trong một thư mục duy nhất, khi sử dụng Trình lưu trữ mặc định.

django-fsfield giải pháp nguồn mở duy nhất cho điều này? Bất cứ điều gì khác bạn muốn giới thiệu cho sửa chữa số lượng lớn các inodes trong một thư mục?

Cảm ơn bạn!

Trả lời

2

Xem xét lưu trữ nội dung trong bộ sưu tập MongoDB.

Vì các tệp nhỏ, bạn có thể tạo tài liệu MongoDB với một đơn binary field chứa nội dung tệp. "Nhỏ" trong trường hợp này có nghĩa là nhỏ hơn giới hạn kích thước tài liệu MongoDB, hiện tại là 16MB.

Nếu bạn cần lưu trữ các tệp lớn, Mongo hỗ trợ với gridfs.

Xem thêm When to use GridFS.

0

Cũng có thể sử dụng trình quản lý lưu trữ tùy chỉnh nếu tệp nhỏ tiết kiệm trong mô hình cơ sở dữ liệu với trường nhị phân và lưu các tệp nhỏ hơn 16MB và không cần sử dụng cơ sở dữ liệu khác.

2

Tôi đang sử dụng django-castor.

django-thầu dầu là một ứng dụng tái sử dụng được cho Django cung cấp một lưu trữ nội dung địa chỉ backend. Lớp chính, djcastor.storage.CAStorage, là một loại FileSystemStorage giúp lưu tệp theo thông báo SHA-1 của chúng.

  • Không có vấn đề bao nhiêu lần cùng một tập tin được tải lên, nó sẽ chỉ là lưu trữ một lần, do đó loại trừ dư thừa.

  • Tên tệp là giả ngẫu nhiên và chỉ được tạo thành các ký tự thập lục phân, do đó, bạn không phải lo lắng về việc va chạm tên tập tin hoặc vệ sinh.

  • django-castor phân đoạn tệp trong thư mục tải lên dựa trên các thông báo của chúng; điều này ngăn các vấn đề về hệ thống tập tin khi quá nhiều tệp nằm trong một thư mục .

Các vấn đề liên quan