title: Is AWS SDK `PutObjectResult` metadata not holding the content length value?
body: <p>I am successfully storing objects to S3. As a result of <code>PutObjectRequest</code> it returns <code>PutObjectResult</code>, which has a <code>getMetadata()</code> method. However, the metadata it returns is holding some values and misses others that I would expect to be there. In particular it misses the content length value, though it is explicitly assigned to <code>PutObjectRequest</code>.</p>
  
  <p>For instance, this sample code:</p>
  
  <pre><code>  val client: AmazonS3 = ???
  
    val contentBytes = "Test content".getBytes
    val inputStream: InputStream = new ByteArrayInputStream(contentBytes)
  
    val metadata = new ObjectMetadata
    metadata.setContentLength(contentBytes.length)
  
    val putRequest = new PutObjectRequest("bucketName", "key", inputStream, metadata)
      .withStorageClass(StorageClass.valueOf("ReducedRedundancy"))
  
    val putObjectResult = client.putObject(putRequest)
  
    println(s"Storage class: ${putObjectResult.getMetadata.getStorageClass}; Length: ${putObjectResult.getMetadata.getContentLength}")
  </code></pre>
  
  <p>would return the following: <strong>Storage class: REDUCED_REDUNDANCY; Length: 0</strong></p>
  
  <p>Is it a bug, am I doing something wrong, or is it expected behaviour?</p>