AWS Lambda/Firehose 是否支持 Base64 URL 解码?

Does AWS Lambda/Firehose support Base64 URL decoding?

我的流水线如下:

Firehose -> Lambda (AWS' Java SDK) -> (S3 & Redshift)

未编码(原始)JSON 记录已提交至 Firehose。然后它会触发一个 Lambda 函数,对其进行轻微的转换。然后 Firehose 将转换后的记录放入 S3 存储桶和 Redshift。

Firehose 要将转换后的数据添加到 S3,需要对数据进行 Base64 编码(并且 Firehose 在将其添加到 S3 之前对其进行解码)。

但是,我在数据中有一个 URL,当解码时,= 字符被替换为它们的等效 unicode 字符 (\u003d),因为它是Amazon 的 Base64 解码器用作填充。

https://www.[snipped].com/...?returnurl\u003dnull\u0026referrer\u003dnull

如何在解码数据中保留那些 = 个字符?

注意:我试过使用Base64.getUrlEncoder(),但AWS似乎只支持Base64.getEncoder()

事实证明,我在(反)序列化我的 Lambda 记录时使用的 JSON 库 (Gson) 启用了 HTML 转义。要修复它,我只需要禁用 HTML 转义:

new GsonBuilder().disableHtmlEscaping().create();