【问题标题】:write image to blobstore from url从 url 将图像写入 blobstore
【发布时间】:2013-08-23 09:56:54
【问题描述】:

这个问题与How to upload image from url to Blobstore? 类似,但现在google.appengine.api.files 已弃用。

我拥有的是一个网络表单,用户在其中插入一个 url,图像应该上传到 blobstore。然后在服务器端我获取 url 以获取图像数据并创建一个google.appengine.api.files

没有google.appengine.api.files 也可以吗?我想保持简单,就像用户提交图像并且服务器使用blobstore_handlers.BlobstoreUploadHandler

也许我可以在客户端做点什么,在客户端获取图像,然后使用与 blobstore_handlers.BlobstoreUploadHandler 相同的方法?

【问题讨论】:

    标签: python google-app-engine blobstore


    【解决方案1】:

    您将需要使用 urlfetch(或 urllib2)来获取图像(在服务器端,基于传入的 url)。

    然后您可以使用gcs client 将图像上传到 blobstore。

    这是来自demo的sn-p:

    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)
    

    【讨论】:

    • 谢谢,但正如我所说,我想保持简单,所以没有 gcs,只有 blobstore。实际上,我对差异感到困惑。
    • 我同意,GAE 开始使用不同的方法令人困惑。您可以通过调用 create_gs_key developers.google.com/appengine/docs/python/blobstore/… 从 gcs 文件创建 blob_key
    • 所以将文件写入 gcs,然后调用 blobstore.create_gs_key(它会创建 blob 密钥,您应该能够从中提供图像)。我不确定删除功能在哪里。
    猜你喜欢
    • 2011-12-18
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 2015-02-06
    • 2014-10-21
    • 2011-08-05
    • 1970-01-01
    相关资源
    最近更新 更多