Compression aws sns发布压缩有效载荷

Compression aws sns发布压缩有效载荷,compression,amazon-sns,Compression,Amazon Sns,可发布到AWS-SNS的最大邮件大小限制为256KB。我们可以使用GZIP压缩消息并发送和发布压缩消息以克服大小限制吗 你已经看过了吗 如果你认为该文件可以增加的时间,我建议另一种方法 将文件放在S3存储桶中,并将S3事件通知附加到SNSTopic,以便在新文件准备好处理时通知所有消费者。 换句话说,SNS的消息将是文件的位置,而不是文件本身。 想想看。你已经看过了吗 如果你认为该文件可以增加的时间,我建议另一种方法 将文件放在S3存储桶中,并将S3事件通知附加到SNSTopic,以便在新文件准

可发布到AWS-SNS的最大邮件大小限制为256KB。我们可以使用GZIP压缩消息并发送和发布压缩消息以克服大小限制吗

你已经看过了吗

如果你认为该文件可以增加的时间,我建议另一种方法

将文件放在S3存储桶中,并将S3事件通知附加到SNSTopic,以便在新文件准备好处理时通知所有消费者。 换句话说,SNS的消息将是文件的位置,而不是文件本身。
想想看。

你已经看过了吗

如果你认为该文件可以增加的时间,我建议另一种方法

将文件放在S3存储桶中,并将S3事件通知附加到SNSTopic,以便在新文件准备好处理时通知所有消费者。 换句话说,SNS的消息将是文件的位置,而不是文件本身。
想想看。

您可以gzip消息体-但是-SNS消息体只支持UTF-8字符数据。gzip数据是二进制的,因此不能直接与SNS兼容,因为并非所有可能的字节序列也是有效的UTF-8字符序列

因此,在gzip有效负载之后,需要使用base-64之类的方案对二进制数据进行编码。Base-64仅使用64(即2^6)对任意二进制数据进行8位/字节的编码,有效地给出了6位/字节符号,因此这种编码的结果是字节计数增加了8/6 133%。这意味着192KB的二进制数据编码为256KB的base-64编码数据,因此gzip后允许的最大消息大小为192K,因为SNS限制为256KB。但是所有的base-64符号都是有效的单字节UTF-8字符,这就是为什么这种编码如此普遍使用的一个重要原因,尽管它的大小增加了。事实上,gzip的压缩比通常远高于1.33:1,这是gzip+base-64的盈亏平衡点


但是,如果您的邮件将gzip压缩到192K或更低,这肯定适用于SNS和SQS,它们具有相同的字符集和大小限制。

您可以gzip邮件正文-但是-SNS邮件正文仅支持UTF-8字符数据。gzip数据是二进制的,因此不能直接与SNS兼容,因为并非所有可能的字节序列也是有效的UTF-8字符序列

因此,在gzip有效负载之后,需要使用base-64之类的方案对二进制数据进行编码。Base-64仅使用64(即2^6)对任意二进制数据进行8位/字节的编码,有效地给出了6位/字节符号,因此这种编码的结果是字节计数增加了8/6 133%。这意味着192KB的二进制数据编码为256KB的base-64编码数据,因此gzip后允许的最大消息大小为192K,因为SNS限制为256KB。但是所有的base-64符号都是有效的单字节UTF-8字符,这就是为什么这种编码如此普遍使用的一个重要原因,尽管它的大小增加了。事实上,gzip的压缩比通常远高于1.33:1,这是gzip+base-64的盈亏平衡点


但是,如果您的邮件将gzip压缩到192K或更低,那么这肯定适用于SNS和SQS,它们具有相同的字符集和大小限制。

‪您还可以使用SNS/SQS扩展客户端库来处理大型消息有效负载。‬


‪您还可以使用SNS/SQS扩展客户端库来处理大型消息有效负载。‬


这看起来是克服th 256KB限制的一个很好的解决方案。我没有遵循附加S3事件通知的需要。创建S3文件后,需要通知什么?是我误解了这个说法吗?@AndyDufresne当一个新对象被上传到bucket时,S3通知是最简单的通知方式。显然,这不是唯一的方法。我们可以放置对象并通知对象已上载。这看起来是克服th 256KB限制的一个极好的解决方案。我没有遵循附加S3事件通知的需要。创建S3文件后,需要通知什么?是我误解了这个说法吗?@AndyDufresne当一个新对象被上传到bucket时,S3通知是最简单的通知方式。显然,这不是唯一的方法。我们可以放置对象并通知对象已上载。