docs: private void setAcl(String bucketName, String key, String versionId, AccessControlList acl, boolean isRequesterPays,
              AmazonWebServiceRequest originalRequest) {
          if (originalRequest == null) originalRequest = new GenericBucketRequest(bucketName);
  
          Request<AmazonWebServiceRequest> request = createRequest(bucketName, key, originalRequest, HttpMethodName.PUT);
  
          if (bucketName != null && key != null) {
              request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutObjectAcl");
          } else if (bucketName != null) {
              request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutBucketAcl");
          }
  
          request.addParameter("acl", null);
          if (versionId != null) request.addParameter("versionId", versionId);
          populateRequesterPaysHeader(request, isRequesterPays);
  
          byte[] aclAsXml = new AclXmlFactory().convertToXmlByteArray(acl);
          request.addHeader("Content-Type", "application/xml");
          request.addHeader("Content-Length", String.valueOf(aclAsXml.length));
          request.setContent(new ByteArrayInputStream(aclAsXml));
  
          invoke(request, voidResponseHandler, bucketName, key);
      }