默認情況下,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%。如果你需要額外的迴旋餘地來傳遞更大的信息,那麼編碼就不會有幫助。 –