python - 获取 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
即使操作成功,它也总是返回一个对象。
解决方案
关于如何获取有关对存储桶所做更改的通知,您还可以尝试以下几种方法:
使用Pub/Sub - 这是推荐的方式,其中 Pub/Sub 通知将有关对存储桶中对象的更改的信息发送到 Pub/Sub,其中信息以消息的形式添加到您选择的 Pub/Sub 主题中。在这里,您将找到一个使用 python 的示例,就像您的情况一样,并使用gsutil、其他支持的语言或REST API等其他方式。
使用Watchbucket的对象更改通知:这将创建一个通知通道,该通道使用 gsutil 命令将通知事件发送到给定存储桶的给定应用程序 URL 。
Cloud Functions with Google Cloud Storage 触发器使用事件驱动函数来处理来自 Google Cloud Storage 的事件,配置这些通知以触发以响应存储桶内的各种事件——对象创建、删除、归档和元数据更新。这里有一些关于如何实现它的文档。
另一种方法是使用Eventarc构建事件驱动架构,它提供了一个标准化的解决方案来管理解耦的微服务之间的状态变化流,称为事件。Eventarc 将这些事件路由到 Cloud Run,同时为您管理交付、安全性、授权、可观察性和错误处理。这里有一个关于如何实现它的指南。
在这里,您将能够找到具有相同问题和答案的相关帖子:
推荐阅读
- node.js - 是否可以通过键将重复记录显示为一条记录并为其分配一对多的数据数组
- vue.js - Vuetify:更改主题时发出警告
- docker - 将 Docker 部署到 AWS Elastic Beanstalk:无法执行命令“docker pull maven”
- c# - 如何使用 Add-Type C# 代码禁用 PowerShell Windows 窗体中的关闭按钮?
- css - reveal.js - 本地提供本地提供的字体
- powershell-core - 从自定义参数完成器/动态参数访问当前管道项
- python - 删除斜杠命令
- google-apps-script - 如何为多个 Google 日历的活动生成和使用相同的 Google Meet 链接
- url - 没有主机的自定义 URL 方案,用于深度链接或打开内容
- c# - 在特定时间开始任务