2009-01-25 21 views
8

मैं Google ऐप इंजन और पायथन के साथ खेल रहा हूं और मैं एक स्थिर निर्देशिका की फ़ाइलों को सूचीबद्ध नहीं कर सकता। नीचे वह कोड है जिसका मैं वर्तमान में उपयोग करता हूं।एक स्थिर निर्देशिका में फ़ाइलों को कैसे सूचीबद्ध करें?

app.yaml

- url: /data 
    static_dir: data 

अजगर कोड फ़ाइलों

myFiles = [] 
for root, dirs, files in os.walk(os.path.join(os.path.dirname(__file__), 'data/')): 
    for name in files: 
     full_name = os.path.join(root, name) 
     myFiles.append('%s;%s\n' % (name, datetime.fromtimestamp(os.stat(full_name).st_mtime))) 

सूची जब मैं अपने मशीन पर स्थानीय रूप इस कोड को चलाने के लिए, सब कुछ ठीक है। मेरे पास निर्देशिका की जड़ पर मेरी पायथन लिपि है और यह डेटा निर्देशिका के तहत फ़ाइलों को चलाती है। हालांकि, जब मैं GAE में सटीक कोड को अपलोड और चलाता हूं, तो यह काम नहीं करता है। ऐसा लगता है कि मेरे एप्लिकेशन की निर्देशिका संरचना Google App Engine में बिल्कुल प्रतिकृति नहीं है। स्थिर फाइलें कहां हैं?

धन्यवाद!

उत्तर

7

https://developers.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Static_file_handlers

जहां आपको लगता है वे कर रहे हैं वे नहीं कर रहे हैं, GAE GoogleFS में स्थिर सामग्री है जो एक CDN के बराबर है डालता है। विचार यह है कि स्थैतिक सामग्री सीधे आपके उपयोगकर्ताओं को सेवा दी जाती है और फ़ाइल स्टोर के रूप में कार्य नहीं करती है जिसे आप कुशल बना सकते हैं। इसके अलावा जीएई में 1 के फाइल की सीमा है और यदि आप अपनी स्थिर फ़ाइल स्टोर में हेरफेर कर सकते हैं तो इस नियम को पुलिस करना मुश्किल होगा।

+0

लिंक मृत ... – Jonny

2

Here'sa परियोजना आप अपने स्टैटिक फ़ाइलें ब्राउज़ कर सकते हैं कि: http://code.google.com/p/appfilesbrowser/

और यहाँ है appengine के लिए व्यंजनों की सूची देखने चाहिए: http://appengine-cookbook.appspot.com/ (मैं यहाँ कुछ समय पहले कि इस परियोजना के बारे में पाया जाता है)

+0

http://code.google.com/p/appfilesbrowser/issues/detail?id=2 + अब कोड होने के बाद आपके आवेदन के लिए प्रासंगिक 1K फ़ाइल में कटौती क्या है सीमा। – David

0

आप प्रोग्रामिक रूप से स्थैतिक सामग्री के रूप में अपलोड की गई फ़ाइलों तक नहीं पहुंच सकते हैं - वे आपके ऐप के साथ सर्वर पर स्थापित नहीं हैं, बल्कि उन्हें सीधे सेवा दी जाती है। यदि आपको वास्तव में उन तक पहुंचने की आवश्यकता है, तो आप स्थिर फ़ाइल हैंडलर को हटा सकते हैं और उन्हें स्वयं सेवा कर सकते हैं।

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

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