此问题与How to upload image from url to Blobstore?相似,但现在已弃用google.appengine.api.files
。
我所拥有的是一个Web表单,用户可以在其中插入URL并将图像上传到blobstore。然后在服务器端,我获取网址以获取图像数据,然后创建一个google.appengine.api.files
。
没有google.appengine.api.files
可以吗?我想保持简单,就像用户提交图片并且服务器使用blobstore_handlers.BlobstoreUploadHandler
也许我可以在客户端执行某些操作,在客户端上获取图像,然后使用与blobstore_handlers.BlobstoreUploadHandler
相同的方法吗?
答案 0 :(得分:0)
您需要使用urlfetch(或urllib2)来获取图像(在服务器端,基于传入的URL)。
然后您可以使用gcs client将图像上传到blobstore。
以下是demo:
的摘录def create_file(self, filename):
"""Create a file.
The retry_params specified in the open call will override the default
retry params for this particular file handle.
Args:
filename: filename.
"""
self.response.write('Creating file %s\n' % filename)
write_retry_params = gcs.RetryParams(backoff_factor=1.1)
gcs_file = gcs.open(filename,
'w',
content_type='text/plain',
options={'x-goog-meta-foo': 'foo',
'x-goog-meta-bar': 'bar'},
retry_params=write_retry_params)
gcs_file.write('abcde\n')
gcs_file.write('f'*1024*1024 + '\n')
gcs_file.close()
self.tmp_filenames_to_clean_up.append(filename)