मेरे ऐप उपयोगकर्ता अपनी फाइलें एक बाल्टी में अपलोड करते हैं। मैं कैसे सुनिश्चित कर सकता हूं कि मेरी एस 3 बाल्टी में प्रत्येक ऑब्जेक्ट में ऑब्जेक्ट को ओवरराइट होने से रोकने के लिए एक अनूठी कुंजी है?अमेज़ॅन एस 3 प्रत्येक ऑब्जेक्ट के लिए अद्वितीय कुंजी बना रहा है
फिलहाल मैं अपने php स्क्रिप्ट में एक यादृच्छिक स्ट्रिंग के साथ फ़ाइल नामों को एनक्रिप्ट कर रहा हूँ एस 3 के लिए फ़ाइल भेजने से पहले।
चर्चा के लिये की है कि अपलोडर अपलोड पर फ़ाइल नाम में हेरफेर करने के लिए एक तरह से पाता है लगता करते हैं। वह banana की तस्वीर के साथ मेरी साइट पर सभी छवियों को प्रतिस्थापित करना चाहता है। एन्क्रिप्शन विफल होने पर एस 3 में फ़ाइलों को ओवरराइट करने से रोकने का एक अच्छा तरीका क्या है?
संपादित करें: मैं वर्ज़निंग क्योंकि मैं जब मेरी बाल्टी से छवियों को प्रदर्शित करने में एक छवि URL में एक संस्करण आईडी निर्दिष्ट नहीं कर सकते काम करेंगे नहीं लगता।
जवाब देने के लिए धन्यवाद! मैं एक यादृच्छिक स्ट्रिंग के लिए एन्क्रिप्ट कर रहा हूँ। मुझे लगता है कि फ़ाइल पहले से मौजूद है या नहीं, यह जांचने का अनुमान है कि अगर मैं एक अतिरिक्त एस 3 अनुरोध करता हूं तो भी सबसे अच्छा समाधान है। या अगर मैं डेटाबेस में सभी फाइल जानकारी संग्रहीत करता हूं तो मैं डीएसबी टेबल को mysql के साथ देख सकता हूं। – CyberJunkie
जैसा कि मैंने ऊपर बताया है, फ़ाइल नाम एन्क्रिप्ट करना सबसे प्रभावी समाधान नहीं है। आप नाम को यादृच्छिक स्ट्रिंग के साथ बदल सकते हैं, और मैपिंग को अपने डेटाबेस में स्टोर कर सकते हैं। 'Openssl_random_pseudo_bytes()' देखें। –
@TerenceJohnson, "लगभग कभी नहीं" केवल यादृच्छिक बिट्स जोड़कर "मनमाने ढंग से असंभव" हो सकता है। एस 3 के लिए अतिरिक्त यात्रा करना आपके सेवा समय को चोट पहुंचाने जा रहा है। – Fantius