2013-01-02 11 views
5

Desidero accedere a un file nel mio computer da un'applicazione del motore di app google. Se metto il file nella cartella src dell'applicazione non ci sono problemi ma ho bisogno che questo file sia fuori da quella cartella.IOErrore: file [Errno 13] non accessibile GAE

Quando provo ad accedere a questo file ottengo l'errore successivo:

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' 

Ho letto che se un file viene definito come statico app.yaml non può essere accessibile da GAE. Questa è la mia app.yaml. Io non riesco a capire se c'è qualcosa che non va:

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

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

E questa è la parte di applicazione che tenta di accedere al file:

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

Qualcuno sa il motivo per cui faccio ad avere il " file non accessibile "errore?

Grazie!

+0

possibile duplicato di [ IOError: \ [Errno 13 \] file non accessibile con Google AppEngine 1.6.1] (http://stackoverflow.com/questions/8799304/ioerror-errno-13-file-not-accessible-with-google-appengine-1 -6-1) – bain

risposta

9

Inserire il file nella stessa directory del resto dei file delle applicazioni (ad esempio dove è app.yaml).

Tutti i file a cui si desidera accedere alla propria applicazione devono trovarsi nello stesso posto, nella directory principale dell'applicazione.

GAE non può accedere a file arbitrari da qualche parte sul computer, proprio come non può accedere ai file salvati "da qualche altra parte" quando vengono distribuiti.

filename='myfile.doc' 

Supponendo che sia nella 'radice' (come app.yaml).

+1

Anche se fosse in grado di accedere a tali file, codifica la loro posizione sul tuo disco rigido in un'applicazione destinata a essere eseguita su Google cloud essere una cattiva idea. Se Google può accedere direttamente al tuo disco rigido, non te ne parlerà. – geoffspear

+0

Grazie per le vostre risposte! – user1930068

0

Nel file app.yaml è necessario rendere visibile il file per la vostra applicazione:

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

Per esempio nel mio app.yaml il file sembra che questo

- url: /data 
    script: main.app 
Problemi correlati