Alle großen Websites speichern keine Bilder in der Datenbank , in der sie auf der Festplatte gespeichert sind. Sie speichern einen Verweis auf die Position des Bildes in einer Tabelle. Und dann von dort aus verlinken.
Warum? Performance.
Das Abrufen umfangreicher Inhalte aus einer Datenbank ist ein großer Leistungsengpass. Und Datenbanken lassen sich horizontal nicht so gut skalieren, sodass dies ein noch größeres Problem bedeuten würde. Alle großen Websites verwenden statische Inhaltsfarmen, um statische Inhalte wie Bilder zu verarbeiten. Das sind Server, denen Ihre Identität egal ist.
Wie halten sie die Bilder wirklich privat, könnte man fragen? Sie tun es nicht.
Der Link des Bildes ist an sich die Adresse und das Passwort. Nehmen wir zum Beispiel Facebook. Wenn ich ein privates Bild in meinem Konto speichere, sollten Sie es nicht öffnen können. Aber solange Sie die richtige Adresse haben, können Sie.
Dieses Bild ist privat . Beachten Sie den Dateinamen
10400121_87110566301_7482172_n.jpg
(Facebook ändert die URL von Zeit zu Zeit, sodass der Link möglicherweise unterbrochen wird).
Es ist nicht sequentiell. Die einzige Möglichkeit, sich ein Bild zu machen, besteht darin, die Adresse zu kennen.
Basierend auf einem vorherigen Benutzerfoto können Sie das nächste nicht erraten.
Es hat eine enorme Entropie, und selbst wenn Sie anfangen, zufällige wilde Vermutungen anzustellen, werden Sie eine große Anzahl von Fehlern haben, und wenn Sie zu einem Bild kommen, werden Sie von dort aus nicht in der Lage sein, die Identität des Besitzers zu erkennen, die, an sich ist Schutz in der Anonymität.
Bearbeiten (warum Sie Bilder nicht in einem Ordner "Benutzername" speichern sollten:
Nach Ihrer Bearbeitung wurde klar, dass Sie beabsichtigen, Dateien auf der Festplatte und nicht in der Datenbank abzulegen. Diese Bearbeitung deckt das neue Szenario ab.
Obwohl Ihre Logik (Ordner pro Benutzer erstellen) besser organisiert ist, treten Probleme auf, wenn Sie viele Benutzer und viele Bilder haben. Stellen Sie sich vor, Ihre Server verfügen über 1T Speicherplatz. Stellen wir uns auch vor, dass 1T mit der Last, die der Server bewältigen kann, mehr oder weniger genau ist.
Jetzt haben Sie 11 Benutzer. Nehmen Sie an, dass sie gleichzeitig mit dem Hochladen beginnen und jeder mehr als 100 GB Dateien hochlädt. Wenn sie jeweils 91 GB erreichen, ist der Server voll und Sie müssen Bilder auf einem anderen Server speichern. Wenn diese Benutzer- / Ordnerstruktur befolgt wird, müssen Sie einen der Benutzer auswählen und alle seine Daten auf einen anderen Server migrieren. Außerdem ist ein Benutzer, der nicht mehr als 1 TB in Dateien hochladen kann, stark eingeschränkt.
Soll ich dann alle Dateien im selben Ordner speichern?
Nein, große Websites speichern Dateien im Allgemeinen in sequentiellen Ordnern (/ 000001 /, / 000002 / usw.) mit einer x-definierten Anzahl von Dateien pro Ordner. Dies betrifft hauptsächlich Leistungsprobleme im Dateisystem.
Mehr darüber, wie viele Dateien in einem Verzeichnis zu viele sind?