从url将图像写入blobstore

时间:2013-08-23 09:56:55

标签: python google-app-engine blobstore

此问题与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相同的方法吗?

1 个答案:

答案 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)