Guest User

Untitled

a guest
Jan 18th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. public void upload(InputStream is, String bucketName, String key) throws IOException{
  2. long partSize = 5 * 1024 * 1024;
  3.  
  4. InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(bucketName, key);
  5. InitiateMultipartUploadResult result = amazonS3.initiateMultipartUpload(request);
  6. String row;
  7.  
  8. List<PartETag> partETags = new ArrayList<>();
  9.  
  10. BufferedReader br = new BufferedReader(new InputStreamReader(is));
  11.  
  12. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  13.  
  14. while ((row = br.readLine()) != null) {
  15. if (baos.size() >= partSize) {
  16. uploadPart(baos, partETags, result.getUploadId(), key);
  17. baos.reset();
  18. } else {
  19. row += 'n';
  20. baos.write(row.getBytes(Charset.forName("UTF-8")));
  21. }
  22. }
  23.  
  24. CompleteMultipartUploadRequest compRequest = new CompleteMultipartUploadRequest(
  25. bucketName,
  26. key,
  27. result.getUploadId(),
  28. partETags);
  29.  
  30. amazonS3.completeMultipartUpload(compRequest);
  31. }
  32.  
  33.  
  34. private void uploadPart(ByteArrayOutputStream baos, List<PartETag> partETags, String uploadId, String key) throws IOException
  35. {
  36. int partNumber = partETags.size()+1;
  37.  
  38. log.info("Upload part: " + partNumber + " to: " + key + " with size: " + baos.size());
  39.  
  40. InputStream inputStream = new ByteArrayInputStream(baos.toByteArray());
  41.  
  42. UploadPartRequest uploadRequest = new UploadPartRequest()
  43. .withBucketName(this.outputBucket)
  44. .withKey(key)
  45. .withUploadId(uploadId)
  46. .withInputStream(inputStream)
  47. .withPartNumber(partNumber)
  48. .withPartSize(baos.size());
  49.  
  50. partETags.add(s3.uploadPart(uploadRequest));
  51. }
Add Comment
Please, Sign In to add comment