2013-01-02 9 views
5

Ich möchte auf eine Datei auf meinem Computer von einer Google App-Engine-Anwendung zugreifen. Wenn ich die Datei in den src-Ordner der Anwendung stelle, gibt es kein Problem, aber ich brauche diese Datei außerhalb dieses Ordners.IOError: [Errno 13] Datei nicht zugänglich GAE

Wenn ich versuche, diese Datei ich die nächsten Fehler erhalten zuzugreifen:

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' 

Ich habe gelesen, dass, wenn eine Datei als statisch in app.yaml definiert ist, nicht von GAE zugänglich sein kann. Das ist meine App.Yaml. Ich kann nicht herausfinden, wenn es etwas falsch:

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

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

Und das ist der Teil der Anwendung, die die Datei zuzugreifen versucht:

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

Weiß jemand, warum ich das bekommen " Datei nicht zugänglich "Fehler?

Danke!

+0

möglich Duplikat sieht [ IOError: \ [Errno 13 \] Datei ist mit Google AppEngine 1.6.1 nicht verfügbar (http://stackoverflow.com/questions/8799304/ioerror-errrno13-file-not-accessible-with-google-appengine-1) -6-1) – bain

Antwort

9

Versetzen Sie die Datei in das gleiche Verzeichnis wie die übrigen Anwendungsdateien (d. H. Wo sich die Datei app.yaml befindet).

Alle Dateien, auf die Ihre Anwendung zugreifen soll, müssen sich an derselben Stelle in Ihrem Hauptanwendungsverzeichnis befinden.

GAE kann nicht auf beliebige Dateien irgendwo auf Ihrem Computer zugreifen, genauso wie es nicht auf Dateien zugreifen kann, die "irgendwo" gespeichert sind, wenn sie bereitgestellt werden.

filename='myfile.doc' 

Das wird angenommen, es ist in der 'root' (das gleiche wie app.yaml).

+1

Selbst wenn es auf solche Dateien zugreifen könnte, wird der Speicherort auf Ihrer Festplatte in einer Anwendung festgeschrieben, die auf Google laufen soll Wolke sei eine schlechte Idee. Wenn Google direkt auf Ihre Festplatte zugreifen kann, werden Sie nicht darüber berichten. – geoffspear

+0

Danke für Ihre Antworten! – user1930068

0

In Ihrer app.yaml Datei müssen Sie die Datei sichtbar zu Ihrer App machen:

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

Zum Beispiel in meiner app.yaml Datei, die es wie dieses von

- url: /data 
    script: main.app 
Verwandte Themen