我们说handlers:
- url: /img/
static_dir: templates/img
中有以下处理程序:
templates/img
并且0001.jpg
文件夹包含文件parameters = {'parm1': 'value1',
'parm2': 'value2'}
parameters = urllib.urlencode(parameters)
response = urlfetch.Fetch(url, payload=parameters, method=urlfetch.POST, deadline=60)
。
以下代码用于POST数据:
urlfetch
我应该如何将该文件添加到OidDao
?
答案 0 :(得分:0)
默认情况下,App Engine中的静态文件不可供应用程序访问。正如the docs所解释的那样,“静态文件在应用程序的文件系统中不可用”。
如果您需要为应用程序提供静态和提供的文件,则可以将static_dir
添加到templates
处理程序节。
但是,如果您这样做,再次根据文档,文件将上传两次(到您的应用程序的文件系统和提供静态文件的单独文件系统),并且“两次上传都是针对您的代码和静态的数据存储资源配额“。
如果您这样做,您的应用程序代码(假设它位于path = os.path.join(os.path.dirname(__file__), 'templates/img/0001.jpg')
是子目录的顶级目录中)将能够访问您提到的文件(仅供阅读)路径给出:
urlfetch.Fetch
即使这样,我也不知道“将该文件添加到urlfetch”是什么意思。 payload
不接受文件参数。如果你的意思是将文件的内容添加到with open(path, 'rb') as f:
parameters['data'] = f.read()
,那么你可能只需要添加一个条目(使用你想要使用的名字,文件的字节作为值)到你正在编码的字典中为此目的,例如
urlencode
在致电{{1}}之前。