6

आप ट्विटर की तरह एक सामाजिक नेटवर्किंग साइट पर एक प्रोफ़ाइल तस्वीर को देखते हैं, वे छवि फ़ाइलों को स्टोर की तरह:क्लाउड स्टोरेज/सीडीएन के लिए अपने फ़ाइल नामों को यादृच्छिक क्यों करें?

http://a1.twimg.com/profile_images/1082228637/a-smile_twitter_100.jpg 

या यहाँ तक कि रास्ते में कहीं न कहीं एक तारीख 20110912. केवल तत्काल लाभ मैं के बारे में सोच सकते हैं की तरह साथ एक बॉट को एक रैखिक फैशन में अपने भंडारण में सभी फ़ाइलों को डाउनलोड करने और डाउनलोड करने से रोक रहा है। क्या मुझे कोई अन्य लाभ याद आ रहा है? इसे यादृच्छिक बनाने के लिए सबसे अच्छा तरीका क्या है?

मैं अमेज़ॅन एस 3 का उपयोग कर रहा हूं, इसलिए मेरे पास एक सबडोमेन होगा जो मेरी सभी स्थिर सामग्री की सेवा करेगा। मेरी योजना मेरे डेटाबेस में एक पूर्णांक आईडी स्टोर करना था और फिर स्थान बनाने के लिए आईडी के साथ यूआरएल को बस संगत करना था।

उत्तर

11

सार्वजनिक कारणों में क्रिप्टोग्राफिक रूप से स्कैम्बल पहचानकर्ता एक कारण यह है कि व्यवसाय की वृद्धि दर हमेशा सार्वजनिक नहीं होती है।

यदि मौजूदा आईडी को केवल एक नया उपयोगकर्ता खाता बनाकर या एक छवि अपलोड करके घटाया जा सकता है, तो बाहरी व्यक्ति नियमित आधार पर इसे करके और कितनी आईडी देखकर विकास दर (या ऊपरी सीमा) की गणना कर सकता है विलुप्त समय के दौरान इस्तेमाल किया गया था।

चाहे यह स्थिर हो रहा है या क्या यह तेजी से विस्फोट कर रहा है, मैं प्रतिस्पर्धी या व्यावसायिक विश्लेषकों को अपने लिए इसे कम करने में सक्षम होने के बजाय इस जानकारी को जारी करने में सक्षम होना चाहता हूं।

इसके ऑफ़लाइन उदाहरण चालान हैं और संख्याएं जांचें। यदि आप नियमित रूप से किसी कंपनी द्वारा बिल या भुगतान करते हैं, तो आप देख सकते हैं कि उस समय अवधि में कितने चालान या चेक लिखते हैं।

http://metacpan.org/pod/Crypt::Skip32

यह Skip32 एल्गोरिथ्म में लिखा का एक सीधा अनुवाद है:

यहाँ एक CPAN (पर्ल) मॉड्यूल मैं बनाए रखने के दो रास्ते स्किपजैक के आधार पर एन्क्रिप्शन का उपयोग 32-बिट आईडी scrambles है ग्रेग गुलाब द्वारा सी:

http://www.qualcomm.com.au/PublicationsDocs/skip32.c

इस दृष्टिकोण का उपयोग प्रत्येक 32-बिट आईडी को एक प्रभावी ढंग से 32-बिट संख्या में (प्रभावी रूप से यादृच्छिक) में मैप किया जाता है जिसे मूल आईडी में वापस किया जा सकता है। आपको अपने डेटाबेस में कुछ भी अतिरिक्त सहेजने की ज़रूरत नहीं है।

मैं scrambled आईडी को URL में प्रदर्शित करने के लिए 8 हेक्स अंकों में परिवर्तित करता हूं।

एक बार आपकी आईडी 4.2 9 बिलियन (32-बिट्स) तक पहुंचने के बाद आपको अधिक समर्थन के लिए यूआरएल संरचना को विस्तारित करने की योजना बनाने की आवश्यकता होगी, लेकिन मुझे जितनी देर तक संभव हो सके छोटे यूआरएल पसंद हैं।

+0

मुझे इस विचार की रेखा पसंद है। मुझे अपनी आईडी पीढ़ी की रणनीति पर पुनर्विचार करना होगा। – Adam

2

मुख्य रूप से, यह नाम टकराव को रोकता है। उदाहरण के लिए, एक से अधिक व्यक्ति "IMG_0001.JPG" अपलोड कर सकते हैं। आप एक निर्देशिका में फ़ाइलों की संख्या पर भी सीमा से बचते हैं, और आप कई सर्वरों पर छवियों को दाढ़ी दे सकते हैं - कोई रास्ता नहीं है कि ट्विटर या फेसबुक जैसी कोई बड़ी साइट एक ही सर्वर पर सभी फ़ोटो स्टोर कर सकती है, भले ही कितना बड़ा हो।

+0

मैं समझता हूं कि आपका क्या मतलब है लेकिन ट्विटर अमेज़ॅन एस 3 का उपयोग करता है, इसलिए उन्हें किसी सर्वर या निर्देशिका की अवधारणा के बारे में चिंता करने की आवश्यकता नहीं है। वे एक निर्देशिका में एक ट्रिलियन ऑब्जेक्ट्स (या उनके पास जितने भी हैं) स्टोर कर सकते हैं और इसके बारे में चिंता करने की ज़रूरत नहीं है। मेरे मामले में, मैं MySQL में एक ऑटो-वृद्धि पूर्णांक कॉलम का उपयोग कर रहा हूं ताकि S3 पर संबंधित फ़ाइल नाम के रूप में कार्य किया जा सके ताकि नामांकन टकराव एक मुद्दा न हो। तो क्या आपको लगता है कि बॉट्स को व्यवस्थित रूप से आपकी सभी फाइलें डाउनलोड करने से रोकने का एक अच्छा तरीका है? – Adam

+0

वे निश्चित रूप से नरक के बारे में चिंता करने की ज़रूरत है अगर वे किसी विशिष्ट निर्देशिका की तलाश में निर्देशिका में फ़ाइलों को सूचीबद्ध करना चाहते हैं। – ceejayoz

+0

उन्हें कहीं और फ़ाइल स्थान के बारे में मेटा डेटा स्टोर करना होगा (डेटाबेस, जेएसओएन दस्तावेज़, आदि)। मुझे पता है कि ट्विटर अमेज़ॅन एस 3 का उपयोग करता है और यदि वे वास्तव में चाहते थे, तो वे सभी छवियों को a1.twimg.com/* के तहत स्टोर कर सकते हैं। अमेज़ॅन का क्लाउड हार्डवेयर को एक उच्च स्तर पर संभालता है जिसे आपको निर्देशिकाओं के संदर्भ में नहीं सोचना पड़ता है। चूंकि मैं विशेष रूप से एस 3 के बारे में पूछ रहा हूं, इस मामले में sharding और क्लस्टरिंग कोई मुद्दा नहीं है। – Adam

4

यूआरएल बदलना पुरानी संपत्तियों को अमान्य करने का एक सुरक्षित तरीका है।

यदि आप निजी छवियों को संग्रहीत करने की अनुमति देना चाहते हैं तो यह भी एक आवश्यकता है।जैसे ही आप सीडीएन पर संपत्ति स्टोर करते हैं, उपयोगकर्ता खाते के नाम/आईडी/पथ से कटौती योग्य पथ का उपयोग गोपनीयता सेटिंग्स को बेकार कर देगा।

संबंधित मुद्दे