2013-12-11 4 views
8

मैं एक ऐप विकसित कर रहा हूं, जिसमें उपयोगकर्ता चित्र पोस्ट कर सकते हैं। तो मैं यह सुनिश्चित करना चाहता हूं कि हर बार तस्वीर को अद्वितीय नाम मिल जाए। PHP में मैं userId के साथ टाइमस्टैम्प को संयोजित करने के लिए उपयोग करता हूं। लेकिन node.js में मुझे टाइमस्टैम्प को स्ट्रिंग में बदलने की विधि नहीं मिल रही है। तो कृपया यह सुनिश्चित करने का एक तरीका सुझाएं कि मेरी फ़ाइलों को डुप्लिकेट नाम नहीं मिलते हैं।उन्हें अपलोड करते समय फ़ाइलों को अद्वितीय नाम देना

उत्तर

10

समाधान से एक एक फ़ाइल नाम के लिए UUID उपयोग करने के लिए किया जाएगा। लेकिन यह निश्चित रूप से आपकी अनुप्रयोग आवश्यकताओं या बाधाओं (नामकरण सम्मेलन इत्यादि) पर निर्भर करता है। हालांकि, अगर फ़ाइल नाम के रूप में यूयूआईडी स्वीकार्य होगा, तो मैं node-uuid लाइब्रेरी का उपयोग करने की सलाह देता हूं (उपयोग करने में बहुत आसान!)।

नमूना कोड:

var uuidv4 = require('uuid/v4'); 
var filename = uuidv4() + '.png' 

यह एक अद्वितीय पहचानकर्ता के रूप UUID उपयोग करने के लिए सुरक्षित है। आप उस पर अधिक जानकारी प्राप्त कर सकते हैं उदा। flake-idgen जो संघर्ष-मुक्त वर्तमान टाइमस्टैम्प के आधार पर आईडी उत्पन्न करता है: How unique is UUID?

वैकल्पिक समाधान (जहां नाम विशिष्टता एक आवश्यकता है) एक और Node.js पुस्तकालय का उपयोग करने के लिए होगा। वह समाधान अद्वितीय संख्या की गारंटी देता है।

समाधान भी बहुत ही कुशल है, प्रति जनरेटर में मिलीसेकंड में 4096 आईडी तक उत्पन्न करने की अनुमति देता है (आपके पास 1024 अद्वितीय जेनरेटर हो सकते हैं)।

मुझे उम्मीद है कि इससे मदद मिलेगी।

+0

यह सवाल कैसे एक स्ट्रिंग के रूप में एक टाइमस्टैम्प प्राप्त करने के लिए जवाब नहीं है, लेकिन जिस तरह से अद्वितीय पैदा करने के लिए बेहतर है फ़ाइल नाम – TheHippo

+0

@TheHippo यह सच है कि मैंने उपयोगकर्ता आईडी के साथ समेकित टाइमस्टैम्प का उत्तर नहीं दिया। मैंने ध्यान केंद्रित किया ... यह सुनिश्चित करने का एक तरीका सुझाता है कि मेरी फाइलों को डुप्लिकेट नाम नहीं मिलते हैं '- जैसा कि आपने कहा, अलग-अलग दृष्टिकोण, बेहतर विकल्प;) सम्मान। – Tom

5

नोड में:

timestamp = new Date().getTime().toString(); 
+0

कुछ इस तरह प्रस्तुत करती है: '1499264027973' –

4

आप टाइमस्टैम्प UUID का उपयोग उपयोग करना चाहते हैं इस

var uuid = require('uuid'); 

// Generate a v1 (time-based) id 
uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a' 

// Generate a v4 (random) id 
uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1' 
संबंधित मुद्दे