在同一项目中列出来自Cloud Function的GCS bucket Blob



我想列出同一项目中Google Cloud Function的bucket中的文件

现在,我的云功能代码是

main.py

from google.cloud import storage
def my_function(event, context):
storage_client = storage.Client()
blobs = storage_client.list_blobs("my_bucket")
for blob in blobs:
print(blob.name)

需求.txt

google-cloud==0.34.0

我得到的错误是

从google.cloud导入存储导入错误:无法从"google.cloud"(未知位置(导入名称"storage">

我的印象是google-cloud会预装在运行云功能的机器上,但事实似乎并非如此。

我试过:

  1. 阅读谷歌文档,这就是代码的来源
  2. 阅读这里的其他问题,即这个(这个问题表明google-cloud没有预加载,这就是我将其添加到requirements.txt的原因(和这个(但我认为有一种方法可以在不设置GOOGLE_APPLICATION_CREDENTIALS的情况下做到这一点,因为我在同一项目中调用它(。也请阅读这篇文章,但批准的答案的代码看起来像我的,不起作用

如何列出存储桶上的文件?

谷歌云模块(按原样(已弃用。最后一个版本是2018年。

您需要在requirements.txt中仅指定谷歌云存储,如下所示:

google-cloud-storage>=1.31.0

pypy和谷歌云python-github页面都表示,您只需要导入将要使用的服务的模块

正如今天(2020年9月(一样,当你只安装谷歌云存储时,它最终会安装谷歌云,但不需要使用它或从代码中导入它。

此外,请记住,执行云功能的服务帐户必须具有"storage.backets.list"IAM权限。

google-cloud依赖项包含Google Cloud客户端库的所有公共元素。但它并没有包含所有GCP产品的所有库。

因此,您必须包含CLoud Storage 的客户端库

  • https://pypi.org/project/google-cloud-storage/

您可以删除google-cloud依赖项,因为它自动包含在google-cloud-storage一个中

相关内容

  • 没有找到相关文章

最新更新