【发布时间】:2017-03-23 01:10:16
【问题描述】:
我想要完成的是构建最简单的系统来处理通过消息队列上传的图像。
现在我们正在处理临时文件,我们为需要通过 Aws S3 发送的每个图像构建一个,并根据我们的需要对其进行优化/自定义。完成所有这些后,我们将其推送到 S3。
现在,这目前可行,但我想通过使用图像的 base64 编码来消除文件系统开销,从而使进程与运行应用程序的系统完全分离。
由于我们将使用 Amazon SQS(我们目前在生产环境中使用 Beanstalkd),他们的服务不允许将超过 256Kb 的有效负载推送到队列中,这是一个问题,因为图像非常重。
还有哪些解决方案可供探索?
【问题讨论】:
-
将中间文件发送到 S3 并在 SQS 消息中引用其临时位置 url,也许?
-
这是一个想法,如果只有 PHP SDK 支持的话……我见过 AWS 开发了一个扩展客户端,但仅适用于 Java。咕噜。
-
SDK 不会自动通过 SQS 支持它,但没有任何明显的理由说明您不能自己将文件存储在 S3 中并将 URI 包含在 SQS 消息中。跨度>
-
我当然可以!不过,使用两个库会产生开销。自动识别有效负载大小的 PHP 扩展客户端(就像 Java 中存在的客户端一样)将有助于加快功能开发。
-
是的,虽然在 EC2 S3 中的连接速度非常快。或者,用户可以directly upload it to S3 并且成功的 URL 重定向可以将他们带到您的页面,在那里您将排队到 SQS。
标签: amazon-web-services amazon-s3 message-queue amazon-sqs beanstalkd