Geben Sie Dateien beim Hochladen eindeutige Namen

8

Ich entwickle eine App, in der Nutzer Bilder posten können. So möchte ich sicherstellen, dass jedes Mal das Bild einen eindeutigen Namen bekommt. In PHP verwende ich Zeitstempel mit userId verketten. Aber in node.js bekomme ich nicht die Methode, Timestamp in String zu konvertieren. Also schlagen Sie bitte einen Weg vor, um sicherzustellen, dass meine Dateien keine doppelten Namen erhalten.

    
Tirthankar Kundu 11.12.2013, 10:23
quelle

3 Antworten

10

Eine der Lösungen wäre die Verwendung von UUID für einen Dateinamen. Das hängt natürlich von Ihren Anforderungen oder Einschränkungen Ihrer Anwendung ab (Namenskonvention usw.). Wenn UUID als Dateiname akzeptiert wird, empfehle ich jedoch die node-uuid -Bibliothek (sehr einfach zu verwenden!) .

Beispielcode:

%Vor%

Es ist sicher, UUID als eindeutigen Bezeichner zu verwenden. Sie können mehr dazu auf SO finden, z.B. Wie einzigartig ist UUID?

Alternative Lösung (wenn Namenseindeutigkeit eine Voraussetzung ist) wäre die Verwendung einer anderen node.js-Bibliothek: flake-idgen , die konfliktfreie IDs basierend auf dem aktuellen Zeitstempel generiert. Diese Lösung garantiert einzigartige Zahlen.

Die Lösung ist auch sehr effizient, erlaubt bis zu 4096 Ids in einer Millisekunde pro Generator (Sie können bis zu 1024 einzigartige Generatoren haben).

Ich hoffe, das wird helfen.

    
Tom 11.12.2013, 11:22
quelle
5

Im Knoten:

%Vor%     
damphat 11.12.2013 10:49
quelle
4

Wenn Sie Zeitstempel uuid verwenden möchten, verwenden Sie dies

%Vor%     
Adrian Kremer 26.02.2016 14:32
quelle

Tags und Links