2011-06-07 10 views
20

मैं अमेज़ॅन एस 3 के साथ अपनी स्थिर साइट की सेवा में देख रहा हूं। मैंने एक बाल्टी बनाई है और मेरी फाइलें अपलोड की हैं; एडब्ल्यूएस प्रबंधन कंसोल में "वेबसाइट" टैब के तहत मैंने "सक्षम" की जांच की है और "इंडेक्स दस्तावेज़" फ़ील्ड में index.html दर्ज किया है।जब मैं/foo या/foo/पूछता हूं तो अमेज़ॅन एस 3 स्वचालित रूप से /foo/index.html क्यों नहीं देता है?

{ 
    "Version": "2008-10-17", 
    "Id": "924a2348-de0e-43aa-bb06-83adbcd1db22", 
    "Statement": [ 
     { 
      "Sid": "PublicReadForGetBucketObjects", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::my-bucket/*" 
     } 
    ] 

} 

जहां मैं अपने बाल्टी के बजाय नाम my-bucket है: मैं निम्नलिखित बाल्टी नीति है। "अनुमतियाँ" टैब के तहत मैंने "हर कोई" सूची क्षमता भी प्रदान की है।

अगर मैं my-bucket.s3.amazonaws.com/index.html मेरा पेज (और इसके छवियों, सीएसएस, आदि) का उपयोग करने के लिए ऊपर से पता चलता अपेक्षा के अनुरूप प्रयास करें। हालांकि, सिर्फ my-bucket.s3.amazonaws.com या my-bucket.s3.amazonaws.com/ के लिए जा रहा बजाय पेज दिखाने का एक निर्देशिका-लिस्टिंग एक्सएमएल फ़ाइल देता है। अगर मैं (स्लैश के साथ) my-bucket.s3.amazonaws.com/subdirectory/ पर जाने की कोशिश अगर मैं my-bucket.s3.amazonaws.com/subdirectory पर जाने के लिए मैं कोई त्रुटि मिलती है (एक्सएमएल में) की कोशिश करते हुए कहा कि "निर्दिष्ट कुंजी मौजूद नहीं है।" अधिकांश बिज़ारेलि, कोई पृष्ठ लोड लेकिन मेरी ब्राउज़र एक डाउनलोड करता है download नाम की खाली फ़ाइल। (एक बार फिर, my-bucket.s3.amazonaws.com/subdirectory/index.html के लिए जा रहा पृष्ठ अपेक्षानुसार को दर्शाता है।)

मैं यहाँ कुछ गलत कर रहा हूं? निर्देशिका नाम का अनुरोध होने पर index.html फ़ाइल दिखाने के लिए मैं S3 कैसे प्राप्त करूं?

उत्तर

12

जैसे आप एक रूट (इंडेक्स) विन्यस्त करने की जरूरत लग रहा है दस्तावेज़:

http://docs.amazonwebservices.com/AmazonS3/latest/dev/IndexDocumentSupport.html

http://aws.typepad.com/aws/2011/02/host-your-static-website-on-amazon-s3.html

+24

मैं इस समस्या पाया। मैंने कुछ समय पहले अपना दूसरा लिंक पढ़ा था, लेकिन मैं अभी वापस गया और इसे फिर से पढ़ा और महसूस किया कि मैं गलत डोमेन नाम का उपयोग कर रहा था। अपनी साइट की उम्मीद करने के बजाय 'मेरी-bucket.s3.amazonaws.com', पर आयोजित होने यह केवल एक तरह से किया गया था जो, मैं चाहिए उपयोग किया गया है' मेरी-bucket.s3-वेबसाइट-हमें पूर्व-1.amazonaws। com'। (आप इस क्षेत्र को उचित रूप से भी बदल सकते हैं।) यह भेद अब स्पष्ट है कि मुझे इसकी तलाश है, लेकिन लड़का, क्या यह सबडोमेन चीज चमक गई थी! वैसे भी, मुझे आशा है कि अब दूसरों को मेरे अचूकता से लाभ मिलेगा :-) – bdesham

+0

अपने असली यूआरएल को जानने के लिए, 'console.aws.amazon.com' पर जाएं और शीर्ष पर' गुण 'टैब पर क्लिक करें, अपनी बाल्टी चुनें और वहाँ आप ध्यान देने योग्य अपने "अंत बिंदु" url – vsync

+0

भी देख सकते हैं, यदि आप गलत CNAME शुरू में उपयोग करें (जैसे my-bucket.s3.amazon.com), भूल नहीं है (जैसे मैंने किया था) कि DNS के लिए इस कैश होगा कुछ समय। :) –