Skip to content

Instantly share code, notes, and snippets.

@rahulaga
Created August 17, 2018 16:31
Show Gist options
  • Save rahulaga/68f723a77677b484ea844f4546577f4a to your computer and use it in GitHub Desktop.
Save rahulaga/68f723a77677b484ea844f4546577f4a to your computer and use it in GitHub Desktop.
S3 file upload to pre-signed url
//generate as described in S3 docs
URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
String presignedURL = url.toString();
System.out.println(presignedURL);
//upload gzip resource
Resource resource = new ClassPathResource("file.gz");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.set("Content-Encoding","gzip");
HttpEntity<byte[]> requestEntity = new HttpEntity<>(StreamUtils.copyToByteArray(resource.getInputStream()), headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(new URI(presignedURL), org.springframework.http.HttpMethod.PUT,
requestEntity, String.class);
System.out.println("response: " + response);
@LuiWaiHo
Copy link

Thank you so much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment