7

GoogleAppEngineアプリケーションからコンピューター内のファイルにアクセスしたい。アプリケーションのsrcフォルダーにファイルを置いても問題はありませんが、このファイルをそのフォルダーの外に置く必要があります。

このファイルにアクセスしようとすると、次のエラーが発生します。

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からアクセスできないことを読みました。これは私のapp.yamlです。何か問題があるかどうかわかりません:

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)

「ファイルにアクセスできません」というエラーが表示される理由を誰かが知っていますか?

ありがとう!

4

2 に答える 2

10

ファイルを残りのアプリケーションファイルと同じディレクトリ(つまり、app.yamlがある場所)に配置します。

アプリケーションがアクセスするすべてのファイルは、メインアプリケーションディレクトリの下の同じ場所にある必要があります。

GAEは、展開時に「どこか」に保存されたファイルにアクセスできないのと同じように、コンピューターのどこかにある任意のファイルにアクセスできません。

filename='myfile.doc'

これは、「ルート」(app.yamlと同じ)にあると想定しています。

于 2013-01-02T12:14:11.643 に答える
0

app.yamlファイルで、ファイルをアプリに表示する必要があります。

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

たとえば、私のapp.yamlファイルでは次のようになります

- url: /data
  script: main.app
于 2017-05-22T22:25:45.923 に答える