経緯
こちらの記事を見て慌てました。
https://dev.classmethod.jp/cloud/aws/s3-sigv2-abolition/
いくつかS3からファイルをダウンロードするアプリを作っているので、対応しないとやばい!となって確認しました。
しかし、見てみると「AWS SDK for .NET v3」を使っている場合はデフォルトで署名バージョンは4になっているとの事なので特段対応する必要なないのですが、目で見ないとソワソワしちゃう性分なので、SDKのソースコードを見て確認方法を探してみました。
その結果、デバッグでインスタンス内容を見ることで署名バージョンが確認できたのでその方法を紹介します。
確認方法
まず、自分のコード上で
var s3Client = new AmazonS3Client();
のようにS3Clientをしている所を探します。この直後にブレークポイントを打ち、プログラムを起動させて動作を止めます。
止まったら、イミディエイトウィンドウを起動して下記コマンドを実行してください
((Amazon.S3.Internal.S3Signer)s3Client.Signer)._s3Signer._useSigV4
s3Clientの部分はAmazonS3Clientのインスタンス名なので、自分の実装に合わせてください。
実行結果がtrueになっていれば署名バージョンが4になっています。
私みたいに目で見ないとソワソワしてしまう人に役に立てば幸いです。