亚马逊SQS超过2GB的数据

问题描述 投票:0回答:1

使用SQS对来自客户端的一些上传进行排队。我收到以下错误:

com.amazonaws.services.sqs.model.AmazonSQSException:一个或多个参数无效。原因:消息必须短于262144字节。 (服务:AmazonSQS;状态代码:400;错误代码:InvalidParameterValue;请求ID:

我正在使用扩展客户端库。以下是我用来发送消息的代码:

MessageAttributeValue msgAttr = new MessageAttributeValue();
byte [] byteArr=attachment.getBytes();
ByteBuffer buf = ByteBuffer.wrap(byteArr);
msgAttr.setBinaryValue(buf);
msgAttr.setDataType("Binary");
smr.addMessageAttributesEntry("attachment", msgAttr);
amazon-web-services amazon-sqs
1个回答
1
投票

根据Amazon SQS的Limits Related to Messages文档:

邮件大小 最小消息大小为1个字节(1个字符)。最大值为262,144字节(256 KB)。

要发送大于256 KB的消息,可以使用Amazon SQS Extended Client Library for Java。此库允许您发送Amazon SQS消息,该消息包含对Amazon S3中消息有效内容的引用。最大有效负载大小为2 GB。

该库基本上将数据存储在Amazon S3中,然后将引用插入Amazon SQS消息中。

无论出于何种原因,库都会对附件强制实施2GB的限制。您可以尝试修改代码以处理更大的文件,或者您可以编写自己的代码来存储Amazon S3中的对象,并简单地在Amazon SQS消息中包含对amazon S3对象的引用。

© www.soinside.com 2019 - 2024. All rights reserved.