Sentinel-2 GCS Pub/Sub订阅无法接收存储桶新文件上传通知求助
有大量开发者已成功在遥感数据自动化处理、批量影像入库、变化监测工作流等场景中使用该Sentinel-2 GCS公共数据集的Pub/Sub订阅,实现新上传影像的实时感知。
你遇到的无消息接收问题,可先按以下维度排查:
- 权限配置校验:确认你的GCP身份(服务账号/个人账号)对公共主题
projects/gcp-public-data---sentinel-2/topics/gcp-public-data-sentinel-2已被授予pubsub.subscriber、pubsub.topics.attachSubscription权限,该公共主题默认不开放匿名订阅权限,未授权会导致消息静默丢弃不会产生报错。 - 过滤规则校验:若你在订阅上配置了属性过滤规则,先关闭所有过滤规则测试基础接收能力,错误的前缀、区域、卫星类型过滤规则会导致所有消息被拦截。
- 交付配置校验:如果使用推送订阅,确保推送端点为公网可访问地址,且接收到消息后返回2xx状态码确认接收;如果使用拉取订阅,需要通过官方客户端库保持长连接或主动发起拉取请求,不会有消息主动推送到本地。
可行实现方案
方案1:直接使用官方公共Pub/Sub主题(最高效,推荐)
按以下步骤配置即可稳定接收消息:
- 在你自己的GCP项目中创建Pub/Sub订阅,订阅的目标主题选择上述公共主题
- 为订阅绑定的服务账号授予必要权限:
roles/pubsub.subscriber roles/pubsub.viewer
- 可选配置消息过滤规则,仅接收你所需范围的Sentinel-2影像通知,示例过滤规则如下:
attributes.region = 'eu' AND attributes.satellite = 'Sentinel-2B'
- 为订阅配置死信主题,用于接收交付失败的消息,方便后续问题排查。
方案2:自行搭建存储桶事件通知链路(备选)
若公共主题订阅持续无法正常使用,可通过GCS原生通知功能自行搭建通知链路:
- 授予你的服务账号对Sentinel-2公共存储桶
gcp-public-data-sentinel-2的storage.objects.list、storage.buckets.get权限 - 在该公共存储桶上配置对象创建事件通知,绑定你自己GCP项目中的私有Pub/Sub主题
- 在私有主题下创建订阅,即可正常接收新影像上传通知。
内容的提问来源于stack exchange,提问作者bj_SkyTruth15
相关产品推荐
相关产品推荐

