首页 > 解决方案 > 如何从 Google Cloud Functions 读取存储在 Google Cloud Storage 上的非文本文件

问题描述

我需要从 Google Cloud Functions 读取文件。我要阅读的文件托管在 Google Cloud Storage 中。该文件不是一个文本文件,它阻止我使用download_as_string.

到目前为止,我已经尝试以所有标准方式直接从对象中读取gcs.open(file),但是没有定义 gcs(即使我确实在文件顶部导入了 cloudstorage as gcs)。

我能找到的最接近的事情是如何使用 python 从谷歌云读取 mp3 数据(我想读取一个 MP4 文件)但后来我尝试了,blob_uri = gf.open(r'gs://' + bucket_name + '/' + file_name)我总是收到以下错误FileNotFoundError: [Errno 2] No such file or directory: gs://<yourbucket>/<filename>

我也试过了bucket.get_blob(data['name']),和bucket.get_blob(data)

因为是 mp3 文件,所以无法以字符串形式打开(如file = blobfile.download_as_string()

我还尝试使用请求尝试将文件转换为比特率,然后读取该数据,但是由于只读访问云功能需要,必须创建一个新文件来打开现有文件无法正常工作(我也尝试直接上传到云存储,但是因为 CS 返回一个博客,我无法写入文件)。

是否可以直接从 Google Cloud Functions 直接从 Google Cloud Storage 上托管的(非文本)文件读取?如果是这样,我该怎么做?

标签: pythongoogle-cloud-firestoregoogle-cloud-storage

解决方案


请记住:blob 表示二进制大对象。因此,是的,可以读取非字符串 blob!

在 Python 中,您可以download_to_filename按照文档中的描述


推荐阅读