默认情况下,boto在消息发送到SQS之前使用Base64对消息进行编码。示例代码:使用boto从Amazon SQS读取原始消息
conn = boto.connect_sqs('access_key_id', 'secret_key')
q = conn.get_queue('myqueue')
m = Message()
m.set_body('hello!')
q.write(m)
通过用RawMessage()替换Message(),我可以将原始消息发送到队列而无需编码。但是,如何在不解码的情况下从队列中读取消息?如果我使用以下代码:
rs = q.get_messages(1)
if rs:
m = rs[0]
print m.get_body()
m.get_body()会自动返回解码结果。有没有办法检索原始消息?
谢谢!
谢谢,它的工作原理!我将它用于调试,因为您无法在AWS SQS控制台中查看编码消息。 – eliang
迟到的答案在这里 - 但对于其他人 - 编码消息可以占据消息空间的20%-30%。如果你需要额外的回旋余地来传递更大的信息,那么编码就不会有帮助。 –