【问题标题】:How to use Google App Engine's Blobstore to save web images如何使用 Google App Engine 的 Blobstore 保存网络图像
【发布时间】:2011-06-01 15:59:25
【问题描述】:

更新

这个问题最初是在不支持程序化文件创建的时候提出的(例如通过 url)。情况发生了变化,请参阅:http://code.google.com/appengine/docs/java/blobstore/overview.html#Writing_Files_to_the_Blobstore

我正在访问几个不同的 API 来获取图像。我的应用程序是 GAE + Python,我想使用 Blobstore 来保存这些图像。 GAE Blobstore 文档提供了有关如何通过表单而不是直接从 url 将图像保存到 Blobstore 的清晰示例。

http://code.google.com/intl/iw/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore

我想知道如何将http://api.website.com/images/foo.jpg 保存到 Blobstore。

【问题讨论】:

  • 有谁知道任何不推荐用于将图像从链接保存到 Blobstore(而不是通过表单上传)的替代解决方案.. GAE Python..

标签: python google-app-engine blobstore


【解决方案1】:

您可以编写一个额外的处理程序来将输入 url 的内容上传到 blob 存储处理程序。即自动化表单提交过程。向 blob 存储处理程序发出 POST 请求,并对图像进行 url 编码。

但唯一的问题是,如果文件太大,您可能会遇到超时异常。

【讨论】:

    【解决方案2】:

    HTTP POST 到您自己的表单有效。我没有尝试提交文件,但这是我提交表单的方式。您可以从 Internet 获取文件,将其添加到表单提交中,该文件将存储在您的 blobstore 中。

    import urllib
    data = urllib.urlencode({"id":str(id), "password" : self.request.POST['passwd'], "edit" : "edit"})
    result = urlfetch.fetch(url="http://www.montao.com.br/upload",
    payload=data,
    method=urlfetch.POST,
    headers={'Content-Type': 'application/x-www-form-urlencoded'})
    

    here也有类似的问题回答

    我希望它对你有用。

    【讨论】:

    • 将 blobstore 上下文添加到此。 result = urlfetch.fetch(url=blobstore.create_upload_url('http://www.montao.com.br/upload'),...) blobstore.create_upload_url 提供了一个“包装”的 url 来发布到 blobstore,它会在 blobstore 使用 blob_info 使用发布的 img 后调用您的上传处理程序。
    • 你有没有得到这个工作?我已将这种方法用作模型,但遇到了问题。 stackoverflow.com/questions/5370113/…
    【解决方案3】:

    将新的 File API 与 urlfetch API 结合使用,您应该能够通过表单传递图像 url,在服务器端获取它并将其写入 blobstore:

    http://code.google.com/intl/iw/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore

    【讨论】:

    • 太糟糕了,这个文件写入功能已被弃用。
    • 有谁知道任何不推荐用于从链接保存图像(而不是通过表单上传)的替代解决方案..
    猜你喜欢
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 2020-01-23
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2015-02-07
    相关资源
    最近更新 更多