python - 我们可以将压缩文件 (Gzip) 直接推送到 Kinesis Streams 中吗?
问题描述
我有一个 GZIP 文件,需要作为生产者推送到 kinesis。我不需要推送记录,我只需要将 gzip 文件推送到 Stream。可能吗?我在任何地方都没有看到任何文档。
解决方案
在 Kinesis Streams 中,数据使用的单位称为Record。记录的一个组成部分是Data
:
数据块。对于 Kinesis Data Streams,Blob 中的数据既不透明又不可变,它不会以任何方式检查、解释或更改 Blob 中的数据。将数据 blob(base64 编码之前的有效负载)添加到分区键大小时,总大小不得超过最大记录大小 (1 MiB)。类型:Base64编码的二进制数据对象。
因此,当您将 GZIP 编码为 base64 并且其大小小于 1MB时,您可以将其推送到流中。
如果您的 GZIP 文件大于 1MB,则必须将其拆分为多个块,并将它们作为单独的记录注入。字符串的使用者需要从块中重建原始的较大文件。或者,例如,您可以将其存储在 S3 中,然后只需将指向 S3 中对象的链接推送到 Kinesis 中。
推荐阅读
- android - 未找到 Gradle DSL 方法:'kapt()'
- r - R:如何在 ggplot 字幕中将 2019-04-29 显示为 2019 年 5 月 29 日?
- macos - 模拟器无法在 Mac OS 10.11.16 中启动,需要 Mac OS 10.12 或更高版本
- selenium - 选择/单击单选按钮后,在“goo.gl/RVdKM9”处,状态仍然为假
- azure - 如何使用 Azure FaceAPI 通过 faceId 或 thumbnailId 获取性别和年龄
- python-3.x - 如何使用 SQLAlchemy 配置 Flask-Session 以在服务器端存储 Flask 会话
- python - 使用子进程调用时应用程序没有响应
- java - 如何使用 ASCII 符号绘制图像?
- .net-core - 有关通过 Azure AD B2C 和 dotnetcore 对 Bot Framework 用户进行身份验证的任何建议/示例?
- r - 绘制自举置信区间