title: Check if an S3 key exists without throwing exception
body: <p>In Lambda/.Net Core 2.1, I need to check if an S3 key exists:</p>
  
  <pre><code>try
  {
      using (var response = await _client.GetObjectAsync(getRequest))
      using (var streamReader = new StreamReader(response.ResponseStream))
      using (var sr = new JsonTextReader(streamReader))
      {
          existingMods = _jsonSerializer.Deserialize&lt;List&lt;Modification&gt;&gt;(sr);
      }
  }
  catch(AmazonS3Exception e)
  {
      if (e.StatusCode == System.Net.HttpStatusCode.NotFound)
      {
          existingMods = new List&lt;Modification&gt;();
      }
      else
      {
          throw;
      }
  }
  </code></pre>
  
  <p>It works, but the problem is that this handled exception is reported in AWS XRay, which is going to be a problem.</p>
  
  <p>Is there a way to check if an S3 key exists without throwing an exception? I saw references to objects in Amazon.S3.IO (e.g. S3DirectionInfo) namespace, but it appears that this namespace is only in Framework 4.5, and I using .NET Core 2.1.</p>
  
  <p>Thanks.</p>