デフォルトでは、メッセージは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)
Message()をRawMessage()に置き換えると、未処理のメッセージをエンコードせずにキューに送信できます。しかし、どのように私はデコードせずにキューからメッセージを読むのですか?次のコードを使用すると:
rs = q.get_messages(1)
if rs:
m = rs[0]
print m.get_body()
m.get_body()はデコードされた結果を自動的に返します。生のメッセージを取得する方法はありますか?
ありがとうございます!
ありがとう、それは動作します! AWS SQSコンソールでエンコードされたメッセージを表示できないため、デバッグに使用します。 – eliang
ここで最後に答えますが、他の人にはメッセージのエンコーディングがメッセージ空間の20%〜30%を占めることがあります。より大きなメッセージに余裕を持たせる必要がある場合は、エンコーディングが役立ちます。 –