gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:51 26 4
gpt4 key购买 nike

如果 blobstore blob,Google App Engine Files API 现在支持编程创建。

我正在尝试通过 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 的方式吗? Blobstores 的大小限制为 2 GB,而我正在测试的图像小于 200-300 KB。

最佳答案

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

在第 142 行尝试 f.write(image.read())

关于python - 如何将图片从 url 上传到 Blobstore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com