2009-12-15 14 views
6

मैं यहां एक अचार में हूं। मेरे पास वर्तमान में किसी तृतीय पक्ष होस्टिंग प्रदाता द्वारा साझा होस्टिंग वातावरण में होस्ट की गई वेबसाइट है। इस प्रकार, मेरे पास आईआईएस सर्वर की रूट पहुंच नहीं है कि यह वेबसाइट चालू है।अमेज़ॅन एस 3 पर फ़ाइलों को स्थानांतरित करते समय URL

mysite.com/myfiles

"myfiles" निर्देशिका वर्तमान में यह में फ़ाइलों का एक बहुत कुछ है:

मैं वर्तमान में एक निर्देशिका साइट पर है, जैसे कि। इतनी सारी फाइलें जो मुझे मेरे मेजबान पर डिस्क स्पेस आवंटन पर डाल रही हैं। अब कुछ बातें हैं:

  1. होस्ट के लिए अपग्रेड करने के लिए हमारे पास अधिक उदार योजना नहीं है। वे केवल हमें (बहुत अधिक) अधिक शुल्क लेने के लिए तैयार हैं।

  2. हमें इस मेजबान के साथ हमारे अनुबंध के अंत तक रहने की आवश्यकता है, जो लगभग एक वर्ष दूर है।

मैं अमेज़न S3 पर इस निर्देशिका की सामग्री लेने के लिए और डाल यह है, जो होस्टिंग खाते पर डिस्क स्थान तनाव को राहत देने हैं करना चाहते हैं। एकमात्र मुद्दा यह है कि फ़ाइलों के लिए यूआरएल एक ही रहने की जरूरत है!

तो उदाहरण के लिए, यदि कोई बाहरी वेबसाइट mysite.com/myfiles/image.jpg से जुड़ी है, तो मैं उस साइट पर छवि को हिचकिचाहट के बिना काम करना जारी रखना चाहता हूं।

क्या यह हासिल करने का कोई संभावित तरीका है?

उत्तर

9

मैं एक एस 3 बाल्टी (और शायद क्लाउडफ़्रंट वितरण जो उस पर बैठता है) बनाने की अनुशंसा करता हूं, जो एक फ़ोल्डर लेआउट से भरा हुआ है जो आपकी मौजूदा साइट (भविष्य के माइग्रेशन के लिए) के अनुरूप होगा। फिर अपनी बाल्टी/वितरण को एक दोस्ताना नाम देने के लिए अपने DNS में एक CNAME प्रविष्टि बनाएं (उदा। s3.my.domain)।

फिर अपनी मौजूदा साइट पर एक यूआरएल रीराइटर जोड़ें जो आगे S3 यूआरएल में http://my.domain/myfiles/xxx के लिए अनुरोध करता है, उदा। `http://s3.my.domain/myfiles/xxx '।

जब आपका होस्टिंग अनुबंध पूरा हो जाता है तो अपनी रूट को इंगित करने के लिए DNS बदलें और बाल्टी/वितरण पर www प्रविष्टियां, या आवश्यकतानुसार कोई अन्य होस्ट।

मैं वर्तमान में क्लाउडफ़्रंट का उपयोग भौगोलिक रूप से मेरे व्यवसायों में से एक के लिए स्थैतिक सामग्री कैश करने के लिए कर रहा हूं और यह बहुत अच्छा काम करता है; शून्य डाउनटाइम अब तक ( ~ 6   12 महीने से अधिक)।


जून 2010: CloudFront उत्कृष्ट किया गया है, पहले से अधिक होस्टिंग व्यवस्था की तुलना में सस्ता। वर्तमान में हम केवल यूएस $ 120 के लिए प्रति माह लगभग 2.5 एम अनुरोध (~ 750 जीबी) की सेवा कर रहे हैं।

0

आपको अमेज़ॅन एस 3 के लिए Virtual Hosting of Buckets दस्तावेज़ीकरण को देखकर आपको क्या चाहिए इसकी जानकारी मिल सकती है। आप उस होस्टनाम को कस्टमाइज़ कर सकते हैं जिसका उपयोग आपकी एस 3 फाइलों तक पहुंचने के लिए किया जाएगा, जो आपको करने की ज़रूरत में मदद कर सकता है।

0

पहला प्रश्न: तृतीय पक्ष साइटों के लिए आपकी साइट पर अखंड यूआरएल क्यों महत्वपूर्ण है? क्या वे आपको सामग्री के लिए भुगतान कर रहे हैं? यदि वे आपको सामग्री के लिए भुगतान नहीं कर रहे हैं, तो क्या आपको कुछ लाभ मिलते हैं जो आपको मुफ्त में सामग्री देकर मिलता है?यह एक व्यावसायिक निर्णय है, और शायद आप इस निष्कर्ष पर पहुंचे कि उस सामग्री को प्रदान करने के लिए अत्यधिक शुल्क का भुगतान करना उचित है।

दूसरा प्रश्न: वास्तव में तृतीय-पक्ष साइटों से कितने यूआरएल जुड़े हुए हैं? आप उन यूआरएल को उपलब्ध रखने के लिए समय ले सकते हैं, और सब कुछ एस 3 होस्टिंग में स्विच कर सकते हैं। एक Google "लिंक:" क्वेरी इसका उत्तर देने में मदद कर सकती है।

तो, समाधान के लिए: यदि आपके पास 301 रीडायरेक्ट बनाने की क्षमता है तो पहला समाधान काम करता है। बस उस यूआरएल के लिए एक रीडायरेक्ट सेट करें जिसे आप स्थानांतरित करना चाहते हैं।

दूसरा समाधान एक रिवर्स प्रॉक्सी है, जिसमें mysite.com पर यूआरएल mysite.s3.amazon.com पर मैप किए जाते हैं। मुझे यकीन नहीं है कि यह वास्तव में एक अच्छा समाधान है; आप फ़ाइलों को प्रॉक्सी करने के लिए बैंडविड्थ के लिए भुगतान करेंगे। इसके अलावा, अगर आपके पास रिवर्स प्रॉक्सी सेट करने की क्षमता है, तो आपके पास 301 रीडायरेक्ट बनाने की क्षमता है।

तीसरा समाधान: अपनी साइट को बड़े पैमाने पर ले जाएं, और डोमेन नाम को S3 (CNAME मैपिंग के माध्यम से) पर रखें। हां, आप एक होस्टिंग सेवा के लिए भुगतान करना समाप्त कर देते हैं जिसका आप अब उपयोग नहीं करते हैं। और यदि आप गतिशील सामग्री का उपयोग करते हैं, तो यह काम नहीं करेगा (लेकिन शायद आप एस 3 के लिए $ 30/माह का भुगतान करते हैं)।

और आखिरकार, समाधान नहीं बल्कि एक पथ आगे: अतिरिक्त स्थिर सामग्री के लिए एक अलग डोमेन नाम का उपयोग करें। उस डोमेन नाम को अमेज़ॅन बाल्टी में CNAME के ​​माध्यम से मैप किया जा सकता है।

+1

तृतीय पक्ष साइटों के लिए साइट पर अखंड यूआरएल होना महत्वपूर्ण है क्योंकि हमारी साइट पर वापस आने वाली कई साइटें हैं, साथ ही साथ उनकी साइट्स (हमारी अनुमति के साथ) में एम्बेड की गई वास्तविक छवियां हैं जो अनुरोध करती हैं हमारे सर्वर से वास्तविक छवि। हम इन लिंक को बनाए रखना चाहते हैं और इन छवियों को तोड़ने से रोकना चाहते हैं। क्यूं कर? विचार करने के लिए, मुझे लगता है। दूसरे प्रश्न का उत्तर यह है कि हमारे पास यह जानने का कोई तरीका नहीं है कि इन सभी बाहरी URL के संदर्भ कहां हैं। मैं Google की "लिंक:" क्वेरी के दायरे या सटीकता से संतुष्ट नहीं हूं। –

0

फ़ाइलों को ले जाएं और निर्देशिका पर 404 हैंडलर सेट करें। 404 हैंडलर क्लाइंट को 301 या 302 स्थिति के साथ पारदर्शी रूप से S3 url पर रीडायरेक्ट कर सकता है। यूआरएल रीराइटिंग का उपयोग करने की अन्य सिफारिशें किसी भी गैर एएसपीएक्स फाइलों के लिए काम नहीं करतीं क्योंकि आप एक साझा होस्टिंग प्रदाता पर हैं और वे आमतौर पर वाइल्डकार्ड एएसपी.नेट मैपिंग का समर्थन नहीं करते हैं।

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