2013-04-12 12 views
5

मैं ऐप इंजन में होस्ट किए गए ऐप के लिए Google क्लाउड स्टोरेज में संग्रहीत स्थिर फ़ाइलों को सेवा देना चाहता था। एचटीएमएल फाइल में, मैंनेGoogle क्लाउड स्टोरेज से स्थिर फाइलों की सेवा करना?

<link href="https://storage.cloud.google.com/my_bucket/custom.css" rel="stylesheet"> 

यह ठीक से काम करता है, अगर लॉग इन उपयोगकर्ता के Google खाते में बाल्टी तक पहुंचने की अनुमति है। चूंकि ऐप को किसी भी व्यक्ति द्वारा एक्सेस किया जा सकता है जिसके पास मेरी बाल्टी तक पहुंच नहीं होगी और ऐसे मामले में, स्थिर फाइलों की सेवा नहीं की जाएगी।

क्या बाल्टी में सार्वजनिक रूप से उपलब्ध स्थिर फाइलें बनाना संभव है? मैंने स्थैतिक फ़ाइल (custom.css) को 'सार्वजनिक रूप से साझा किया' के रूप में बनाया (एसीएल 'सार्वजनिक-पढ़ने' पर सेट है) लेकिन फिर भी अन्य उपयोगकर्ता इसका उपयोग नहीं कर सकते हैं।

+0

आप डिफ़ॉल्ट सेटिंग के द्वारा यह कर किया फ़ाइल जोड़ने के बाद बाल्टी पर एसीएल? –

+0

हां। मैंने files.gs.create ("/ gs/my_bucket/custom.css", acl = 'public-read') का उपयोग किया। – rajpy

उत्तर

7

मुझे यकीन नहीं है कि आप अपनी फाइलें कैसे अपलोड कर रहे हैं और क्यों सार्वजनिक पठन सही ढंग से सेट नहीं किया गया है, लेकिन आप इसे Google Cloud Storage Manager के माध्यम से भी बदल सकते हैं। बस बाल्टी और फ़ाइल का पता लगाएं और Share Publicly चेकमार्क पर क्लिक करें और आपको लिंक मिलेगा।

list of files in the bucket on cloud storage

या आप जनता के साथ gsutil अभी पढ़ का उपयोग कर उस फ़ाइल को अपलोड कर सकते हैं:

gsutil cp -a public-read custom.css gs://my_backet 
+0

चेकमार्क गायब था! छवि के लिए धन्यवाद, अन्यथा मुझे यह नहीं मिला। – rajpy

0

के बगल में मैन्युअल Google Cloud Storage Manager आप भी होने के लिए अपने बाल्टी सेट कर सकते हैं के माध्यम से स्थिर फ़ाइलों में से प्रत्येक को बदलने gsutil का उपयोग करके सार्वजनिक रूप से देखने योग्य:

का उपयोग वर्तमान बाल्टी ऑब्जेक्ट्स पर सार्वजनिक-पढ़ने को सेट करने के लिए करें

gsutil -m defacl set public-read gs://BUCKET_NAME 

"साझा सार्वजनिक रूप से" चेक बॉक्स फिर स्वचालित रूप से अपलोड किए गए प्रत्येक फ़ाइलों के लिए जाँच की जाएगी:

gsutil -m acl set -R -a public-read gs://BUCKET_NAME 

उपयोग defaclभविष्य के अपलोड के लिए डिफ़ॉल्ट के रूप में स्थापित करने के लिए।

accessing bucket लिए

, सुनिश्चित करें कि आप समूहों और उपयोगकर्ताओं के लिए एक अधिकृत आईडी या ईमेल और bucket permission के लिए एक डोमेन दर्ज अन्यथा आप त्रुटि संदेश की तरह मिल जाएगा है कि बनाने:

'DefAclCommand' object has no attribute 'continue_on_error' 
संबंधित मुद्दे