2012-02-12 17 views
30

में निर्देशिका लिस्टिंग मैंने स्थिर फाइलों को होस्ट करने के लिए एक एस 3 बाल्टी सेट की है।एस 3 स्टेटिक वेबसाइट

वेबसाइट एंडपॉइंट (http: //.s3-website-us-east-1.amazonaws.com/) का उपयोग करते समय: यह मुझे इंडेक्स फ़ाइल सेट करने के लिए मजबूर करता है। जब फ़ाइल नहीं मिलती है, तो यह निर्देशिका सामग्री सूचीबद्ध करने के बजाय एक त्रुटि फेंकता है।

एस 3 एंडपॉइंट (.s3.amazonaws.com) का उपयोग करते समय: मुझे फ़ाइलों की एक एक्सएमएल लिस्टिंग मिलती है, लेकिन मुझे एक HTML सूची चाहिए जो उपयोगकर्ता फ़ाइल के लिंक पर क्लिक कर सकते हैं।

मैंने एडब्ल्यूएस कंसोल में "सभी" के लिए सभी फाइलों और बाल्टी को "सूची" की अनुमतियों को सेट करने का प्रयास किया है, लेकिन अभी भी कोई भाग्य नहीं है।

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

क्या यह संभव है? यदि हां, तो क्या मुझे अनुमतियां, एसीएल या कुछ और बदलने की ज़रूरत है?

उत्तर

3

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

+0

क्या आप मुझे यह कैसे करना है इसके दस्तावेज़ीकरण के लिए इंगित कर सकते हैं? चीयर्स – gollumullog

+1

तो मैं अनुमान लगा रहा हूं क्योंकि यह "सही" उत्तर था, किसी ने एस 3 पर यह 100% करने का कोई तरीका नहीं निकाला है। इस समाधान के लिए मिनी-एप होस्ट करने के लिए एक और सर्वर होना आवश्यक है। –

4

इससे आपकी समस्या हल हो सकती है। प्रत्येक समूह के लिए सुरक्षा सेटिंग्स: (आपको इसके लिए bucketexplorer.com सॉफ़्टवेयर की आवश्यकता है)

यदि आप HTTP की फ़ाइलें साझा कर रहे हैं, तो हो सकता है कि आप लोगों को बाल्टी (फ़ोल्डर) की सामग्री सूचीबद्ध करने में सक्षम न हों।) यदि आप बाल्टी सामग्री को सूचीबद्ध करना चाहते हैं तो कोई बाल्टी नाम (http://s3.amazonaws.com/bucket_name/) में प्रवेश करता है, फिर एक्सेस कंट्रोल लिस्ट को संपादित करें और प्रत्येक समूह को पढ़ने का पहुंच स्तर दें (और करें बाल्टी की सामग्री के साथ ही।) यदि आप बाल्टी सामग्री सूची-सक्षम नहीं चाहते हैं लेकिन फ़ाइल को इसके भीतर साझा करना चाहते हैं, तो बाल्टी के लिए प्रत्येक समूह के लिए पहुंच पढ़ें अक्षम करें, और फिर पढ़ने के लिए पहुंच को सक्षम करें बाल्टी के भीतर व्यक्तिगत फाइलें।

+0

मैंने http://s3.amazonaws.com/bucket_name/ विधि की कोशिश की है और यह एक HTML सूची के बजाय एक एक्सएमएल सूची प्रस्तुत करता है। – iJeep

4

मुझे एक ही समस्या थी और एक जावास्क्रिप्ट-एंड-आईफ्रेम समाधान बनाया जो एस 3 वेबसाइट फ़ाइलों में निर्देशिकाओं को सूचीबद्ध करने के लिए बहुत अच्छी तरह से काम करता है। आपको उस निर्देशिका में केवल कुछ .html फ़ाइलों को छोड़ना है, जिन्हें आप सूचीबद्ध करना चाहते हैं। आप इसे यहाँ पा सकते हैं: https://github.com/adam-p/s3-file-list-page

+0

iFrame एक अच्छा विचार है। मैंने जो कुछ भी जरूरी काम करने के लिए एक कार्यक्रम खोजना समाप्त कर दिया। मैं एक उत्तर पोस्ट करूंगा। वेबसाइट से – iJeep

+0

: यह iframe हैक शायद S3 में CORS समर्थन के परिचय (2012-09-01) द्वारा obviated है। इस प्रकार, मैं गारंटी नहीं देता कि डेमो साइट ऊपर रहेगी और चल रही है। –

26

मुझे लगता है कि HTML शैली में एक निर्देशिका सूचकांक कि आप देख रहे हैं बनाता है जे एस का एक सरल सा बना लिया है: https://github.com/rgrp/s3-bucket-listing#website-buckets

: https://github.com/rgrp/s3-bucket-listing

README अमेज़न S3 "वेबसाइट" बाल्टी से निपटने के लिए विशेष निर्देश है

आप इस एस 3 बाल्टी (वेबसाइट मोड में) पर स्क्रिप्ट में स्क्रिप्ट का एक लाइव उदाहरण देख सकते हैं: http://data.openspending.org/

+0

क्या आपको लगता है कि आप इस तरह के विचारों का एक लाइव डेमो डाल सकते हैं? अन्यथा, शायद कुछ स्क्रीनशॉट? –

+0

@MerynStol मैंने उत्तर में एक लाइव उदाहरण के लिए एक लिंक जोड़ा है। ध्यान दें कि थोड़ा सीएसएस फू के साथ आप इसे अच्छे लग सकते हैं (मेरा उद्देश्य क्लासिक अपाचे शैली निर्देशिका सूची का अनुकरण करना था ...) –

+0

धन्यवाद! मुझे यह पसंद है :) –

4

शुद्ध जावास्क्रिप्ट और एडब्ल्यूएस एसडीके जावास्क्रिप्ट एपीआई में एक और दृष्टिकोण आधार का उपयोग करना। PHP या अन्य इंजन की आवश्यकता नहीं है केवल शुद्ध वेबसाइट (अपाचे या यहां तक ​​कि आईआईएस)।

https://github.com/juvs/s3-bucket-browser

(मेरे लिए, कोई मेकअप भावना) अपनी खुद की बाल्टी पर तैनाती के लिए आशय नहीं।

एडब्ल्यूएस से नए आईएएम उपयोगकर्ताओं का उपयोग करके आप अपनी बाल्टी को अधिक विशिष्ट और सुरक्षित पहुंच प्रदान कर सकते हैं। वेबसाइट पर अपनी बाल्टी प्रकाशित करने और सभी सार्वजनिक बनाने की जरूरत नहीं है।

यदि आप पहुंच सुरक्षित करना चाहते हैं, तो आप अपनी वर्तमान वेबसाइट के लिए उपयोगकर्ताओं को प्रमाणित करने के लिए पारंपरिक तरीकों का उपयोग कर सकते हैं।

यह भी मदद आशा है!

+0

मुझे यह पसंद है। शायद हम एचटीएमएल/जेएस/सीएसएस फ़ाइल को एस 3 बाल्टी में अपलोड कर सकते हैं जिसे स्थिर वेबसाइट के रूप में कार्य किया जाता है। मैं कोशिश करूँगा –

6

वहाँ भी इस समाधान है: https://github.com/rgrp/s3-bucket-listing करने के लिए https://github.com/caussourd/aws-s3-bucket-listing

इसी लेकिन मैं इसे इंटरनेट एक्सप्लोरर के साथ काम नहीं कर सके। तो https://github.com/caussourd/aws-s3-bucket-listing आईई के साथ काम करता है और नाम, आकार और तारीख द्वारा फ़ाइलों को ऑर्डर करने की संभावना भी जोड़ता है। नकारात्मक तरफ, यह फ़ोल्डर का पालन नहीं करता है: केवल एक स्तर पर फाइलें प्रदर्शित होती हैं।

1

मैंने एक बहुत ही सरल समाधान बनाया। बस index.html फ़ाइल को अपने फ़ोल्डर की जड़ में रखें और यह काम करेगा। कोई विन्यास की आवश्यकता नहीं है। https://github.com/prabhatsharma/s3-directorylisting