Reading raw messages from Amazon SQS using boto
amazon-sqs, amazon-web-services, boto, python
Solution
The constructor of `boto.sqs.queue.Queue` has a `message_class` argument, which you could set to `RawMessage`. On the other hand, I don't see why it could ever make sense to not encode that data before transmitting it.
Problem
By default, boto encodes messages with Base64 before the messages are sent to SQS. Example code: ``` conn = boto.connect_sqs('access_key_id', 'secret_key') q = conn.get_queue('myqueue') m = Message() m.set_body('hello!') q.write(m) ``` By replacing Message() with RawMessage(), I can send raw messages to the queue without encoding. But how do I read messages from the queue without decoding? If I use the following code: ``` rs = q.get_messages(1) if rs: m = rs[0] print m.get_body() ``` m.get_body() automatically returns the decoded result. Is there a way to retrieve raw messages? Thanks!