private void setAcl(String bucketName, String key, String versionId, AccessControlList acl) {
Request<Void> request = createRequest(bucketName, key, null);
request.addParameter("acl", null);
if (versionId != null) request.addParameter("versionId", versionId);
byte[] aclAsXml = new AclXmlFactory().convertToXmlByteArray(acl);
request.addHeader("Content-Type", "text/plain");
request.addHeader("Content-Length", String.valueOf(aclAsXml.length));
signRequest(request, HttpMethodName.PUT, bucketName, key);
HttpRequest httpRequest = convertToHttpRequest(request, HttpMethodName.PUT);