0

まず、AWS C# SDK は自己チェックを行いますか? 今、私は次のようなことをするコードを持っています

MD5チェック

List<string> msgs = new List<string>();
ReceiveMessageResponse response = this.getMessageRoutine(num);
foreach (Message m in response.ReceiveMessageResult.Message) {
   if (m.MD5OfBody.ToUpper() != Global.StringFunctions.CalculateMD5Hash(m.Body)) {
       throw new Exception("TODO IMPLEMENT: RECEIVED MESSAGE IS CORRUPT");
   }
       msgs.Add(m.Body);
}
return msgs;

送信されたユーザー定義 ID が応答で戻ってきたこと、およびサーバーが生成したメッセージの md5 が送信されたメッセージと一致することを確認する

            foreach (SendMessageBatchResultEntry e in response.SendMessageBatchResult.SendMessageBatchResultEntry) {

                foreach (SendMessageBatchRequestEntry r in entry) {
                    if (r.Id == e.Id) {
                        if (Global.StringFunctions.CalculateMD5Hash(r.MessageBody) != e.MD5OfMessageBody.ToUpper()) {
                            throw new Exception("TODO IMPLEMENT THIS: MD5 MISMATCH BETWEEN AWS:LOCAL (" + e.MD5OfMessageBody.ToUpper() + " : " + Global.StringFunctions.CalculateMD5Hash(r.MessageBody)+")");
                        }
                        entry.Remove(r);
                        break;
                    }
                    throw new Exception("TODO IMPLEMENT THIS: INVALID ID IN RESPONSE");
                }
            }
            if (entry.Count != 0) {
                throw new Exception("TODO IMPLEMENT: NOT ALL MESSAGES SENT HAD A CORRESPONDING CALLBACK");
            }

request.checkResponse(response) のような、既に作成されたこのようなもののより良い実装はありますか?

4

1 に答える 1

2

AWS SDK for .NET ( 1.5.23 )の最新バージョンには、単一のメッセージの送信、メッセージのバッチの送信、メッセージの受信の一部として MD5 ハッシュ チェックが含まれています。それがうまくいかない場合は、その理由と改善方法をお知らせください。

ありがとう!

于 2013-06-14T22:48:24.390 に答える