Standardmäßig codiert Boto Nachrichten mit Base64, bevor die Nachrichten an SQS gesendet werden. Beispielcode:Lesen roher Nachrichten von Amazon SQS mit Boto
conn = boto.connect_sqs('access_key_id', 'secret_key')
q = conn.get_queue('myqueue')
m = Message()
m.set_body('hello!')
q.write(m)
Durch Ersetzen Message() mit RawMessage() kann ich roh Nachrichten an die Warteschlange ohne Codierung senden. Aber wie lese ich Nachrichten aus der Warteschlange ohne Decodierung? Wenn ich den folgenden Code verwende:
rs = q.get_messages(1)
if rs:
m = rs[0]
print m.get_body()
m.get_body() gibt das dekodierte Ergebnis automatisch zurück. Gibt es eine Möglichkeit, rohe Nachrichten abzurufen?
Danke!
Danke, es funktioniert! Ich verwende es zum Debuggen, weil Sie keine codierte Nachricht in der AWS SQS-Konsole anzeigen können. – eliang
Späte Antwort hier - aber für andere - die Codierung der Nachrichten kann solide 20% -30% Ihres Nachrichtenspeichers belegen. Wenn Sie diesen zusätzlichen Spielraum für größere Nachrichten benötigen, kann das nicht helfen. –