2013-01-02 12 views
5

मैं अपने कंप्यूटर में एक Google ऐप इंजन एप्लिकेशन से फ़ाइल एक्सेस करना चाहता हूं। अगर मैं फ़ाइल के अनुप्रयोग फ़ोल्डर में फ़ाइल डालता हूं तो कोई समस्या नहीं है लेकिन मुझे इस फ़ाइल को उस फ़ोल्डर से बाहर होने की आवश्यकता है।IOError: [Errno 13] फ़ाइल उपलब्ध नहीं है GAE

जब मैं इस फाइल मैं अगले त्रुटि मिलती है तक पहुँचने का प्रयास:

Traceback (most recent call last): 
File "C:\Program Files  (x86)\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 712, in __call__ 
handler.post(*groups) 
File "C:\Users\path\Documents\path\oauth2client\appengine.py", line 469, in check_oauth 
return method(request_handler, *args, **kwargs) 
File "C:\Users\path\Documents\path\myapp.py", line 88, in post 
filename=open('C:/Users/path_to_file/Documento 1.docx','r') 
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 635, in __init__ 
raise IOError(errno.EACCES, 'file not accessible', filename) 
IOError: [Errno 13] file not accessible: 'C:/Users/path_to_file/Documento 1.docx' 

मैंने पढ़ा है कि अगर एक फ़ाइल app.yaml में स्थिर के रूप में परिभाषित किया गया है GAE से सुलभ नहीं हो सकता। यह मेरा ऐप है। सैम। मैं समझ नहीं अगर वहाँ कुछ गड़बड़:

application: myapp 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: /.* 
script: myapp.py 

और इस आवेदन फ़ाइल का उपयोग करने की कोशिश करता है कि का हिस्सा है:

filename='C:/Users/path_to_file/Documento 1.docx' 
media_body = MediaFileUpload(filename,resumable=True) 

कोई जानता है कि मैं क्यों मिलता है " फाइल सुलभ नहीं है "त्रुटि?

धन्यवाद!

+0

के संभावित डुप्लिकेट की तरह दिखता है में उदाहरण के लिए [ IOError: \ [Errno 13 \] फ़ाइल Google AppEngine 1.6.1 के साथ पहुंच योग्य नहीं है] (http://stackoverflow.com/questions/8799304/ioerror-errno-13-file-not-accessible-with-google-appengine-1 -6-1) – bain

उत्तर

9

फ़ाइल को अपनी शेष एप्लिकेशन फ़ाइलों (यानी जहां app.yaml है) के समान निर्देशिका में रखें।

आपकी सभी एप्लिकेशन एक्सेस करने के लिए आप जिस एप्लिकेशन को एक्सेस करना चाहते हैं, उसी स्थान पर होना चाहिए, आपकी मुख्य एप्लिकेशन निर्देशिका के तहत।

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

filename='myfile.doc' 

ऐसा लगता है कि यह 'रूट' (app.yaml जैसा ही है) में है।

+1

भले ही यह ऐसी फाइलों तक पहुंच सके, Google पर चलने वाले किसी एप्लिकेशन में आपके हार्डड्राइव पर अपने स्थान को हार्डकोड करना बादल एक बुरा विचार हो सकता है। अगर Google सीधे आपके हार्ड ड्राइव तक पहुंच सकता है, तो वे आपको इसके बारे में बताने वाले नहीं हैं। – geoffspear

+0

आपके उत्तरों के लिए धन्यवाद! – user1930068

0

अपने app.yaml फ़ाइल में आप अपने ऐप में फ़ाइल दृश्यमान बनाना होगा:

handlers: 
- url: /<location to your data files> 
    script: <your app name>.app 

मेरी app.yaml फाइल यह इस

- url: /data 
    script: main.app 
संबंधित मुद्दे