在python中使用cloudstorage模块的问题

时间:2018-07-04 18:43:41

标签: python google-app-engine cloud-storage

我正在尝试通过一系列URL直接上传到Google Cloud Storage。我一直在尝试在此处实施解决方案表格: How to upload an image from web into Google Cloud Storage?

尤其是每当我尝试使用cloudstorage模块打开文件时,

options={'x-goog-acl': 'public-read', 'Cache-Control': 'private, max-age=0, no-transform'}
with gcs.open(filename, 'w', content_type=content_type, options=options) as f:
    f.write(image_bytes)

我收到以下错误:


AttributeError                            Traceback (most recent call last)
<ipython-input-8-dec1a5d39c62> in <module>()
     18 
     19 options={'x-goog-acl': 'public-read', 'Cache-Control': 'private, max-age=0, no-transform'}
---> 20 with gcs.open(filename, 'w', content_type=content_type, options=options) as f:
     21     f.write(image_bytes)
     22     f.close()

AttributeError: 'module' object has no attribute 'open'

我已经尝试过在隔离的环境中安装cloudstorage,但仍然没有运气。

基于以下参考,cloudstorage.open()存在于 https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/functions

您知道问题可能在哪里吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

执行print dir(gcs)以查看其中的内容。您可能正在安装名称相似但不同的软件包。

听起来这就是您想要的

https://github.com/GoogleCloudPlatform/appengine-gcs-client/tree/master/python/src/cloudstorage

这是您要使用的功能:

https://github.com/GoogleCloudPlatform/appengine-gcs-client/blob/master/python/src/cloudstorage/cloudstorage_api.py#L47

此仓库的readme.md指向此处:

https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage

说要这样做:

pip install GoogleAppEngineCloudStorageClient -t <your_app_directory/lib>