De forma predeterminada, boto codifica los mensajes con Base64 antes de que los mensajes se envíen a SQS. Código de ejemplo:Lectura de mensajes sin procesar desde Amazon SQS usando boto
conn = boto.connect_sqs('access_key_id', 'secret_key')
q = conn.get_queue('myqueue')
m = Message()
m.set_body('hello!')
q.write(m)
Mediante la sustitución de Mensaje() con RawMessage(), que puede enviar mensajes primas a la cola sin codificación. Pero, ¿cómo leo mensajes de la cola sin decodificar? Si uso el siguiente código:
rs = q.get_messages(1)
if rs:
m = rs[0]
print m.get_body()
m.get_body() devuelve automáticamente el resultado decodificado. ¿Hay alguna manera de recuperar los mensajes en bruto?
Gracias!
¡Gracias, funciona! Lo uso para la depuración porque no se puede ver el mensaje codificado en la consola AWS SQS. – eliang
Última respuesta aquí, pero para otros, la codificación de los mensajes puede tomar un sólido 20% -30% de su espacio de mensajes. Si necesita ese margen adicional para mensajes más grandes, la codificación no puede ayudar. –