首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用urlfetch发布静态文件?

如何使用urlfetch发布静态文件?
EN

Stack Overflow用户
提问于 2015-09-12 15:05:46
回答 1查看 143关注 0票数 0

假设我的app.yaml中有以下处理程序

代码语言:javascript
复制
handlers:
- url: /img/
  static_dir: templates/img

templates/img文件夹包含文件0001.jpg

以下代码用于发布数据:

代码语言:javascript
复制
parameters = {'parm1': 'value1', 
    'parm2': 'value2'}
parameters = urllib.urlencode(parameters)
response = urlfetch.Fetch(url, payload=parameters, method=urlfetch.POST, deadline=60)

如何将该文件添加到urlfetch

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-12 16:43:21

默认情况下,应用程序无法访问App中的静态文件。正如医生们解释的那样,“静态文件在应用程序的文件系统中不可用”。

如果需要同时为应用程序提供静态可读的文件,则可以将application_readable: true添加到static_dir处理程序节。

但是,如果您这样做,同样按照文档,这些文件将被上传两次(分别上传到应用程序的文件系统和提供静态文件服务的单独文件),并且“这两种上传都由您的代码和静态数据存储资源配额负责”。

如果这样做,您的应用程序代码(假设它位于templates是子目录的顶级目录中)将能够在以下路径访问您提到的文件(仅供读取):

代码语言:javascript
复制
path = os.path.join(os.path.dirname(__file__), 'templates/img/0001.jpg')

即使如此,我也不知道你所说的“将文件添加到urlfetch”是什么意思。urlfetch.Fetch不接受文件参数。如果您的意思是将文件的内容添加到payload中,那么您可能只需将一个带有它的条目(要使用的名称,以及文件的字节作为值)添加到您正在为此目的进行编码的字典中,例如

代码语言:javascript
复制
with open(path, 'rb') as f:
    parameters['data'] = f.read()

就在呼叫urlencode之前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32540288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档