如何将 blob 文件发布到 GCP Pub/Sub?

Posted

技术标签:

【中文标题】如何将 blob 文件发布到 GCP Pub/Sub?【英文标题】:How to publish a blob file to GCP Pub/Sub? 【发布时间】:2021-11-08 05:58:13 【问题描述】:

目前,我正在使用 java 将消息和数据发布到 pub/sub。我想知道如何将 blob 文件发布到 pub/sub 服务?

 @PostMapping(value = "/publish")
    public String publishMessage(@RequestBody MyAppGCPMessage message) 

        var attributes = singleFormatAttributes(message);
        var messagePub = PubsubMessage.newBuilder().putAllAttributes(attributes).build();
        repository.publish(messagePub);
        return "message published to google Pub/Sub successfully";
    

    private Map<String, String> singleFormatAttributes(MyAppGCPMessage entity) 
        return Map.of(
            "id", entity.getId(),
            "name", entity.getName(),
            "email",entity.getEmailId()
        );
    

【问题讨论】:

【参考方案1】:

您不能将 blob 文件发布到 pub/sub。您可以做的是将文件上传到云存储,并为您选择的发布/订阅主题设置通知。设置一个云函数以响应事件而被触发。您将在事件数据中获得上传文件的位置。在 Cloud Function 中执行您想要执行的任何处理。

【讨论】:

消息文件是有限的(最大10Mb),你需要为消息大小付费!!

以上是关于如何将 blob 文件发布到 GCP Pub/Sub?的主要内容,如果未能解决你的问题,请参考以下文章

如何一次性将整个 blob(图像)文件夹从谷歌存储桶下载到 AI Platform Notebooks?

如何让 list_blob 表现得像 gsutil

如何将 GCP Pubsub 订阅的消息转发到另一个主题?

如何将消息从 GCP 推送订阅传递到本地 PC?

按元数据标签对 GCP 计费数据进行排序

GCP 存储 - 如何创建一个脚本,将所有文件/文件夹从一个存储桶复制到另一个存储桶,但文件夹结构不同