通过消息队列传输图像(或大文件)

Transmitting Images (or large files) over Message Queues

我想要完成的是构建最简单的系统来处理通过消息队列上传图片。

现在我们正在处理临时文件,我们为需要通过 Aws S3 发送的每个图像构建一个,optimize/customize 它取决于我们的需要。完成所有这些后,我们将其推送到 S3。

现在,这目前有效,但我想通过使用图像的 base64 编码来消除文件系统开销,从而使该过程与应用程序所在的系统完全分离运行。

由于我们要使用 Amazon SQS(我们目前在生产环境中使用 Beanstalkd),他们的服务不允许超过 256Kb 的负载被推送到队列中,这是一个问题,因为图像非常重.

还有哪些解决方案可供探索?

您可以考虑将文件分成合适的消息大小,在本例中为 256Kb,用适当的序列号标记消息并放入队列。在另一端,接收消息重新 assemble 按顺序发送消息并写入文件或将图像数据推送到解决方案的进一步阶段。