首页 > 解决方案 > 获取 Cloud Storage 上传响应

问题描述

我正在使用 Python SDK 将文件上传到 Cloud Storage 存储桶:

from google.cloud import storage

bucket = storage.Client().get_bucket('mybucket')
df = # pandas df to save
csv = df.to_csv(index=False)
output = 'test.csv'
blob = bucket.blob(output)
blob.upload_from_string(csv)

如何获得响应以了解文件是否已成功上传?我需要记录响应以通知用户该操作。

我试过:

response = blob.upload_from_string(csv)

None即使操作成功,它也总是返回一个对象。

标签: pythongoogle-cloud-storage

解决方案


关于如何获取有关对存储桶所做更改的通知,您还可以尝试以下几种方法:

  1. 使用Pub/Sub - 这是推荐的方式,其中 Pub/Sub 通知将有关对存储桶中对象的更改的信息发送到 Pub/Sub,其中信息以消息的形式添加到您选择的 Pub/Sub 主题中。在这里,您将找到一个使用 python 的示例,就像您的情况一样,并使用gsutil、其他支持的语言或REST API等其他方式。

  2. 使用Watchbucket的对象更改通知:这将创建一个通知通道,该通道使用 gsutil 命令将通知事件发送到给定存储桶的给定应用程序 URL 。

  3. Cloud Functions with Google Cloud Storage 触发器使用事件驱动函数来处理来自 Google Cloud Storage 的事件,配置这些通知以触发以响应存储桶内的各种事件——对象创建、删除、归档和元数据更新。这里有一些关于如何实现它的文档。

  4. 另一种方法是使用Eventarc构建事件驱动架构,它提供了一个标准化的解决方案来管理解耦的微服务之间的状态变化流,称为事件。Eventarc 将这些事件路由到 Cloud Run,同时为您管理交付、安全性、授权、可观察性和错误处理。这里有一个关于如何实现它的指南。

在这里,您将能够找到具有相同问题和答案的相关帖子:

  1. 使用存储触发的云功能
  2. 带有对象更改通知和云存储的 Cloud Pub/Sub 通知
  3. 回答一个Cloud Pub/Sub 主题示例


推荐阅读