从 Google Cloud Pub/Sub 而不是 base64 获取未编码的数据

Posted

技术标签:

【中文标题】从 Google Cloud Pub/Sub 而不是 base64 获取未编码的数据【英文标题】:Getting unencoded data from Google cloud Pub/Sub instead of base64 【发布时间】:2017-02-27 21:55:17 【问题描述】:

我正在尝试将 Python 库用于 Pub/Sub,但我不断收到此错误:TypeError: Incorrect padding。一些快速的谷歌搜索发现了这个问题:https://github.com/GoogleCloudPlatform/google-cloud-python/pull/2527

但是,这并不能解决问题 - 事实上,打印数据表明数据根本没有经过 base64 编码,在库中设置 data = raw_data 解决了问题。

我们从 Java 发送消息,这是我们正在使用的代码:

PCollection<String> userActionsJson = userActionsRaw.apply(ParDo.of(new BigQueryRowToJson()));
       String topicNameFull = "projects/" + options.getProject() + "/topics/" +
               options.getUsersActionsTopicName() + "-" + options.getProduct();
       userActionsJson.apply(PubsubIO.Write.named("PublishToPubSub")
               .topic(topicNameFull));

但是,尝试通过控制台发送消息时也会发生同样的事情。

最近是否发生了一些变化,意味着数据不再是 base64 编码?

【问题讨论】:

【参考方案1】:

这是一个现已在 master 中解决的问题:https://github.com/GoogleCloudPlatform/google-cloud-python/issues/2577

【讨论】:

以上是关于从 Google Cloud Pub/Sub 而不是 base64 获取未编码的数据的主要内容,如果未能解决你的问题,请参考以下文章

无法按日期从 Google Cloud Pub/Sub 功能中的 Firebase 获取文档

如何从 Firebase Cloud Function 在 Google Pub/Sub 中发布消息?

从 Google Cloud Run 托管应用程序触发的 Pub/Sub 消息需要很长时间

Google Cloud Pub/Sub 如何避免时钟偏差

当 ParDo 函数出现错误时,NACK 不会从 Dataflow 发送回 Google Cloud Pub/Sub

从浏览器发布 Google Cloud Pub/Sub - 身份验证如何工作?