Tất cả các trang web lớn không lưu ảnh vào cơ sở dữ liệu chúng lưu trữ chúng trong đĩa. Chúng lưu một tham chiếu đến vị trí của hình ảnh trong một bảng. Và sau đó liên kết từ đó.
Tại sao? Hiệu suất.
Kéo nội dung nặng từ cơ sở dữ liệu là một nút cổ chai hiệu suất rất lớn. Và cơ sở dữ liệu không quy mô theo chiều ngang mà tốt, vì vậy nó sẽ có nghĩa là ngay cả một vấn đề lớn hơn. Tất cả các trang web lớn sử dụng trang trại nội dung tĩnh để xử lý nội dung tĩnh như hình ảnh. Đó là những máy chủ không quan tâm đến danh tính của bạn.
Làm cách nào để giữ ảnh thật sự riêng tư mà bạn có thể yêu cầu? Họ không.
Liên kết của hình ảnh là, chính nó, địa chỉ và mật khẩu. Hãy lấy Facebook làm ví dụ. Nếu tôi lưu trữ một hình ảnh riêng tư trên tài khoản của tôi, bạn sẽ không thể mở nó. Nhưng, miễn là bạn có địa chỉ chính xác bạn có thể.
This picture is private. Thông báo tên tập tin
10400121_87110566301_7482172_n.jpg
(facebook thay đổi url bất cứ lúc nào để liên kết có thể bị phá vỡ)
Đó là không tuần tự. Cách duy nhất để có được bức tranh là biết địa chỉ của nó.
Dựa trên ảnh người dùng trước, bạn không thể đoán được ảnh tiếp theo.
Nó có một entropy rất lớn vì vậy ngay cả khi bạn bắt đầu dùng ngẫu nhiên đoán bạn sẽ có một số lượng lớn các thất bại và, nếu bạn nhận được một hình ảnh, bạn sẽ không thể, từ đó, nhận ra chủ sở hữu bản sắc trong đó, chính nó, là bảo vệ trong ẩn danh.
Chỉnh sửa (tại sao bạn không nên lưu trữ hình ảnh trong một "tên người dùng" thư mục:.
Sau khi chỉnh sửa của bạn nó trở nên rõ ràng rằng bạn thực hiện ý định đưa các tập tin trên đĩa và không phải trên cơ sở dữ liệu chỉnh sửa này bao gồm các kịch bản mới .
Mặc dù logic của bạn (tạo một thư mục trên mỗi người dùng) các đường nối có tổ chức hơn nhưng nó tạo ra các vấn đề khi bạn bắt đầu có nhiều người dùng và nhiều hình ảnh. Hãy tưởng tượng rằng máy chủ của bạn có dung lượng đĩa 1T. Và cho phép cũng tưởng tượng rằng 1T là chính xác hơn hoặc ít hơn với tải mà máy chủ có thể xử lý.
Bây giờ bạn có 11 người dùng, giả sử họ bắt đầu tải lên cùng một lúc và mỗi người sẽ tải lên hơn 100 GB tệp. Khi chúng đạt đến 91GB mỗi máy chủ đầy và bạn phải bắt đầu lưu trữ hình ảnh trên một máy chủ khác. Nếu người dùng/cấu trúc thư mục đó được theo dõi, bạn sẽ phải chọn một trong những người dùng và di chuyển tất cả dữ liệu của mình sang một máy chủ khác. Ngoài ra, nó còn gây khó khăn cho người dùng không thể tải lên nhiều hơn 1T trong các tệp.
Tôi có nên lưu trữ tất cả các tệp trong cùng một thư mục không?
Không, các trang web lớn thường lưu trữ tệp trong các thư mục tuần tự (/ 000001 /,/000002 /, v.v.) có số x tệp được xác định cho mỗi thư mục. Điều này chủ yếu là cho các vấn đề hiệu năng hệ thống tập tin.
Thông tin thêm về how many files in a directory is too many?
@AdrianCornish Bạn có thể cho tôi biết ý của bạn là gì bởi những gì bạn đã thử? Tôi không yêu cầu bạn viết mã cho tôi, tôi chỉ muốn thuật toán hoặc quá trình mà hầu hết mọi người theo dõi để tôi có thể tiếp tục nếu tôi biết phải làm gì – niko
Một lần nữa bạn đã thử những gì? Bạn có thể lưu một đường dẫn đến tệp, bạn có thể lưu trữ dữ liệu nhị phân trong cơ sở dữ liệu. Câu hỏi thực tế của bạn là gì? –
Câu hỏi của bạn bị nói xấu - bạn đang hỏi cách tải ảnh lên. Không phải cách lưu trữ hình ảnh tải lên trang web của bạn.Ngoài ra, bạn đang làm gì để bảo vệ người dùng chống lại mã độc hại tải lên, hình ảnh có tải trọng ẩn, ngăn mọi người chỉ lấy tất cả hình ảnh của bạn từ url có thể lập chỉ mục –