docs: public PutObjectRequest createPutObjectRequest(S3Object s3Object) {
          if (!s3Object.getBucketName().equals(s3ObjectId.getBucket())
          ||  !s3Object.getKey().equals(s3ObjectId.getKey())) {
              throw new IllegalArgumentException("s3Object passed inconsistent with the instruction file being created");
          }
          InstructionFileId ifid= s3ObjectId.instructionFileId(suffix);
  //        ObjectMetadata metadata = s3Object.getObjectMetadata();
          return new PutObjectRequest(ifid.getBucket(), ifid.getKey(), redirectLocation)
              .withAccessControlList(accessControlList)
              .withCannedAcl(cannedAcl)
  //            .withFile(file)
  //            .withInputStream(inputStream)
  // don't want the metadata for the new instruction file
  //            .withMetadata(metadata == null ? null : metadata.clone())
              .withStorageClass(storageClass)
              .withGeneralProgressListener(getGeneralProgressListener())
              .withRequestMetricCollector(getRequestMetricCollector())
              ;
      }