如何将图片从 url 上传到 Blobstore?

2024-02-19

Google App Engine 文件 API 现在支持以编程方式创建 blobstore blob。

我正在尝试通过 http 获取图像并将其存储到 blobstore 中:

    file_name = files.blobstore.create(mime_type='image/jpeg')
    image = urllib2.urlopen(url)
    with files.open(file_name, 'a') as f:
        f.write(image)  # LINE 142

    files.finalize(file_name)   
    blob_key = files.blobstore.get_blob_key(file_name) 

这段代码抛出错误:

  File "/Users/willmerydith/repos/spam/admin.py", line 142, in post
    f.write(image)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/files/file.py", line 364, in write
    self._make_rpc_call_with_retry('Append', request, response)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/files/file.py", line 472, in _make_rpc_call_with_retry
    _make_call(method, request, response)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/files/file.py", line 229, in _make_call
    rpc.check_success()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 558, in check_success
    self.__rpc.CheckSuccess()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_rpc.py", line 156, in _WaitImpl
    self.request, self.response)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub.py", line 80, in MakeSyncCall
    if request.ByteSize() > self.__max_request_size:
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/files/file_service_pb.py", line 1923, in ByteSize
    n += self.lengthString(len(self.data_))
AttributeError: addinfourl instance has no attribute '__len__'

我怀疑它正在破坏,因为我超出了尺寸限制。这是由于我将图像写入 blobstore 的方式造成的吗? Blobstore 的大小限制为 2 GB,我测试的图像小于 200-300 KB。


urllib2.urlopen返回一个urllib2.addinourl对象,而不是字符串。您不能将此对象直接写入文件对象。

Try f.write(image.read())在第 142 行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将图片从 url 上传到 Blobstore? 的相关文章

随机推荐

  • 我将如何实现不同速度的秒表?

    理想情况下 我想要类似的东西跑表 http msdn microsoft com en us library system diagnostics stopwatch aspx类 但有一个额外的属性称为Speed这将决定计时器改变分钟的速度
  • 为什么flask sqlalchemy模型查询没有得到最新记录?

    我有一个模型类 class PlatformUsage db Model tablename platform usage id db Column db BigInteger primary key True module db Colu
  • div内的表格溢出

    我有一个非常基本的 CSS 问题 我有一个高度固定的 div 并且该 div 内有一个表格 除非 div 具有滚动条 否则表格的内容将无法容纳在 div 中 现在的问题是 表格的内容溢出了 div 因为它的高度超过了我在 div 上设置的高
  • Jenkins 中的 pipelinev shell 返回问题 termios.error: (25, 'In合适的 ioctl for device')

    我的 Jenkins 有一个问题 当我运行作业时 Jenkins 遵循以下步骤 1 pipenv install r requirements txt 2 pipenv shell 在这一步出现了这个错误 pipenv shell 17 2
  • json_encode() 中的编码

    包含 或其他特殊字符的字符串怎么会返回 null 不仅保留特殊字符 而且整个字符串 值 都返回为 null EDIT class JSON static function encode arr utf8 encode false arr s
  • 获取 href onclick 并使用链接重定向

    我正在尝试执行以下代码 通过单击特定的 a 标签从一个页面重定向到另一页面 并附加 clk 变量中的特定链接 function abc var a document getElementsByTagName a alert a for va
  • AndEngine:处理与 TMX 对象的碰撞

    我现在设法加载 tmx 地图 我想创建精灵无法移动的障碍 我像这样恢复了障碍 try final TMXLoader tmxLoader new TMXLoader this this mEngine getTextureManager T
  • JSON 模式 oneOf 属性已填充

    如何设置 JSON 架构规则来表明必须设置并且是必需的属性之一 我尝试了各种方法来解决它 例如 id required true additionalProperties true type object properties surnam
  • 使用 MediaMuxer 创建的不可流式传输的视频文件

    我在用MediaCodec对视频进行编码 帧通过相机预览回调传入MediaCodec实例 未使用 Surface 我在用JCodec https github com jcodec jcodec用于混合的库 我能够流式传输生成的视频 视频播
  • C# 中“枚举数”的定义

    C 中枚举数的含义是什么 枚举器可帮助您枚举 迭代 项目集合 您只需查看即可推断出目的IEnumerator 接口的成员 https msdn microsoft com en us library 78dfe2yb aspx 更具体地说
  • 在 zxing 片段库中打开/关闭手电筒

    我在我的应用程序中实现了 Zxing 条码扫描库 我使用过以下库 https code google com p barcodefraglibv2 https code google com p barcodefraglibv2 我想在扫描
  • 从放置在列表视图中的 edittext 获取数据

    我使用 Holder 创建了一个包含 textview 和 edittext 的列表 它看起来像 Textview Edittext Textview Edittext Textview Edittext 但我无法从每个 Edittext
  • 是否可以使用 Ruby 将一系列 PDF 合并为一个?

    我有一系列按顺序命名的 PDF 如下所示 01 foo pdf 02 bar pdf 03 baz pdf etc 使用 Ruby 是否可以将它们组合成一个大的 PDF 同时保持它们的顺序 我不介意安装任何必要的宝石来完成这项工作 如果这在
  • 从 URL 获取文件名

    在Java中 给定一个java net URL or a String形式为http www example com some path to a file xml 获取文件名 减去扩展名 的最简单方法是什么 所以 在这个例子中 我正在寻找
  • Rust 比赛的早期突破

    我想切换多种可能的情况x有一种情况 这里x 0 我想检查一些附加代码的结果以确定下一步要做什么 一种可能性是提前结束比赛 I d use break在 C 中执行此提前返回操作 但这在 Rust 中是不允许的 return从父函数返回 在本
  • 将 UIGesture 转发到后面的视图

    我正在开发 iPhone iOS 4 0 或更高版本 应用程序 并且在多个视图之间进行触摸处理时遇到一些问题 我有这样的视图结构 gt A superView gt SubView A gt SubView B exactly on top
  • Sage Pay 测试服务器不会加载 3D 安全页面

    我正在将 Sage Pay Direct 集成到网站中 目前 我正在测试模式下运行所有 内容 并且一切正常 除非我使用 3D Secure 测试付款 我在这里使用 Sage Pay 测试卡中的第一张卡详细信息 http www sagepa
  • 在 Web 组件 ShadowDOM 中使用 bootstrap

    使用 LitElement 在 Web 组件 shadowDOM 应用程序中使用大型 css 库 如 bootstrap 的最简单方法是什么 尝试了以下方法 在组件内使用链接标签 有效 但会创建 FOUC 无样式内容的闪存 将所有内容渲染到
  • Flask WTForms:如何将表单值返回到 Python 中?

    我想做的是获取 5 个不同字段的用户输入 然后让用户输入的内容可在 python 程序的其余部分中使用 到目前为止 我的代码如下所示 class ArtistsForm Form artist1 StringField Artist 1 v
  • 如何将图片从 url 上传到 Blobstore?

    Google App Engine 文件 API 现在支持以编程方式创建 blobstore blob 我正在尝试通过 http 获取图像并将其存储到 blobstore 中 file name files blobstore create