/** * Converts the specified request object into a URL, containing all the * specified parameters, the specified request endpoint, etc. * * @param request * The request to convert into a URL. * @return A new URL representing the specified request. * * @throws SdkClientException * If the request cannot be converted to a well formed URL. * @deprecated No longer used. May be removed in a future major version. */ @Deprecated public static URL convertRequestToUrl(Request<?> request) { // To be backward compatible, this method by default does not // remove the leading slash in the request resource-path. return convertRequestToUrl(request, false); }
ServiceUtils.downloadObjectToFile(s3Object, file, retryableS3DownloadTask.needIntegrityCheck(), appendData);
private static void populateObjectLockHeaders(Request<?> request, String mode, Date retainUntil, String status) { addHeaderIfNotNull(request, Headers.OBJECT_LOCK_MODE, mode); if (retainUntil != null) { request.addHeader(Headers.OBJECT_LOCK_RETAIN_UNTIL_DATE, ServiceUtils.formatIso8601Date(retainUntil)); } addHeaderIfNotNull(request, Headers.OBJECT_LOCK_LEGAL_HOLD_STATUS, status); } }
metadata.setHeader(key, ServiceUtils.parseRfc822Date(header.getValue())); } catch (Exception pe) { log.warn("Unable to parse last modified date: " + header.getValue(), pe); metadata.setHeader(key, ServiceUtils.removeQuotes(header.getValue())); } else if (key.equalsIgnoreCase(Headers.EXPIRES)) {
@Override protected void doEndElement(String uri, String name, String qName) { if (in("CopyObjectResult") || in ("CopyPartResult")) { if (name.equals("LastModified")) { result.setLastModifiedDate(ServiceUtils.parseIso8601Date(getText())); } else if (name.equals("ETag")) { result.setETag(ServiceUtils.removeQuotes(getText())); } } else if (in("Error")) { if (name.equals("Code")) { errorCode = getText(); } else if (name.equals("Message")) { errorMessage = getText(); } else if (name.equals("RequestId")) { errorRequestId = getText(); } else if (name.equals("HostId")) { errorHostId = getText(); } } } }
private Date parseDate(String restoreHeader) { Matcher matcher = datePattern.matcher(restoreHeader); if ( matcher.find() ) { String date = matcher.group(1); try { return ServiceUtils.parseRfc822Date(date); } catch (Exception exception) { log.warn("Error parsing expiry-date from x-amz-restore " + "header.", exception); } } return null; }
@Test public void testDateParse() { final Date date = new Date(); final String expected = iso8601DateFormat.print(date.getTime()); final String actual = ServiceUtils.formatIso8601Date(date); assertEquals(expected, actual); final Date expectedDate = new Date(iso8601DateFormat.parseMillis(expected)); final Date actualDate = ServiceUtils.parseIso8601Date(expected); assertEquals(expectedDate, actualDate); }
@Override public ObjectMetadata getObject(final GetObjectRequest getObjectRequest, File destinationFile) throws SdkClientException, AmazonServiceException { rejectNull(destinationFile, "The destination file parameter must be specified when downloading an object directly to a file"); S3Object s3Object = ServiceUtils.retryableDownloadS3ObjectToFile(destinationFile, new ServiceUtils.RetryableS3DownloadTask() { @Override public S3Object getS3ObjectStream() { return getObject(getObjectRequest); } @Override public boolean needIntegrityCheck() { return !skipMd5CheckStrategy.skipClientSideValidationPerRequest(getObjectRequest); } }, ServiceUtils.OVERWRITE_MODE); // getObject can return null if constraints were specified but not met if (s3Object == null) return null; return s3Object.getObjectMetadata(); }
@Override public void setBucketPolicy(SetBucketPolicyRequest setBucketPolicyRequest) throws SdkClientException, AmazonServiceException { setBucketPolicyRequest = beforeClientExecution(setBucketPolicyRequest); rejectNull(setBucketPolicyRequest, "The request object must be specified when setting a bucket policy"); String bucketName = setBucketPolicyRequest.getBucketName(); String policyText = setBucketPolicyRequest.getPolicyText(); rejectNull(bucketName, "The bucket name must be specified when setting a bucket policy"); rejectNull(policyText, "The policy text must be specified when setting a bucket policy"); Request<SetBucketPolicyRequest> request = createRequest(bucketName, null, setBucketPolicyRequest, HttpMethodName.PUT); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutBucketPolicy"); request.addParameter("policy", null); request.setContent(new ByteArrayInputStream(ServiceUtils.toByteArray(policyText))); if (setBucketPolicyRequest.getConfirmRemoveSelfBucketAccess() != null && setBucketPolicyRequest.getConfirmRemoveSelfBucketAccess()) { request.addHeader(Headers.REMOVE_SELF_BUCKET_ACCESS, "true"); } invoke(request, voidResponseHandler, bucketName, null); }
/** * <p> * Adds the specified date header in RFC 822 date format to the specified * request. * This method will not add a date header if the specified date value is <code>null</code>. * </p> * * @param request * The request to add the header to. * @param header * The header name. * @param value * The header value. */ private static void addDateHeader(Request<?> request, String header, Date value) { if (value != null) { request.addHeader(header, ServiceUtils.formatRfc822Date(value)); } }
@Override protected void doEndElement(String uri, String name, String qName) { if (in("Retention")) { if ("Mode".equals(name)) { retention.setMode(getText()); } else if ("RetainUntilDate".equals(name)) { retention.setRetainUntilDate(ServiceUtils.parseIso8601Date(getText())); } } } }
/** * <p> * Adds the specified string list header, joined together separated with * commas, to the specified request. * This method will not add a string list header if the specified values * are <code>null</code> or empty. * </p> * * @param request * The request to add the header to. * @param header * The header name. * @param values * The list of strings to join together for the header value. */ private static void addStringListHeader(Request<?> request, String header, List<String> values) { if (values != null && !values.isEmpty()) { request.addHeader(header, ServiceUtils.join(values)); } }
result.setKey(getText()); } else if (name.equals("ETag")) { result.setETag(ServiceUtils.removeQuotes(getText()));
@Test public void testJoin() { final ServiceUtils utils = new ServiceUtils(); final List<String> list = new ArrayList<String>(); final String one = "1"; list.add(one); assertEquals("1", ServiceUtils.join(list)); final String two = "2"; list.add(two); assertEquals("1, 2", ServiceUtils.join(list)); final String three = "3"; list.add(three); assertEquals("1, 2, 3", ServiceUtils.join(list)); }
} else if (name.equals("LastModified")) { currentPart.setLastModified( ServiceUtils.parseIso8601Date(getText())); } else if (name.equals("ETag")) { currentPart.setETag(ServiceUtils.removeQuotes(getText())); } else if (name.equals("Size")) { currentPart.setSize(Long.parseLong(getText()));
} else if (key.equalsIgnoreCase(Headers.LAST_MODIFIED)) { try { metadata.setHeader(key, ServiceUtils.parseRfc822Date(header.getValue())); } catch (final Exception pe) { log.warn("Unable to parse last modified date: " + header.getValue(), pe); metadata.setHeader(key, ServiceUtils.removeQuotes(header.getValue())); } else if (key.equalsIgnoreCase(Headers.EXPIRES)) { try {
private Date parseDate(String expirationHeader) { Matcher matcher = datePattern.matcher(expirationHeader); if ( matcher.find() ) { String date = matcher.group(1); try { return ServiceUtils.parseRfc822Date(date); } catch (Exception exception) { log.warn("Error parsing expiry-date from x-amz-expiration " + "header.", exception); } } return null; } }
ServiceUtils.retryableDownloadS3ObjectToFile(File.createTempFile("temp1", "temp2"), task, false); ServiceUtils.retryableDownloadS3ObjectToFile(File.createTempFile("temp1", "temp2"), task, false); ServiceUtils.retryableDownloadS3ObjectToFile(File.createTempFile("temp1", "temp2"), task, false);
@Override public void setBucketPolicy(String bucketName, String policyText) throws AmazonClientException, AmazonServiceException { assertParameterNotNull(bucketName, "The bucket name must be specified when setting a bucket policy"); assertParameterNotNull(policyText, "The policy text must be specified when setting a bucket policy"); final Request<GenericBucketRequest> request = createRequest(bucketName, null, new GenericBucketRequest(bucketName), HttpMethodName.PUT); request.addParameter("policy", null); final byte[] bytes = ServiceUtils.toByteArray(policyText); request.addHeader(Headers.CONTENT_LENGTH, String.valueOf(bytes.length)); request.setContent(new ByteArrayInputStream(bytes)); invoke(request, voidResponseHandler, bucketName, null); }
request.addHeader(Headers.DATE, ServiceUtils.formatRfc822Date(date)); String canonicalString = RestUtils.makeS3CanonicalString(httpVerb, encodedResourcePath, request, null, additionalQueryParamsToSign);