Advertisement
Guest User

Untitled

a guest
Sep 1st, 2015
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. <Error><Code>InvalidURI</Code><Message>Couldn't parse the specified URI.</Message>
  2.  
  3. AmazonS3 s3 = S3Controller.getS3Client();
  4.  
  5. //as per http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
  6.  
  7. String key = fileName.substring(fileName.indexOf("-")).replaceAll("[^a-zA-Z0-9._]", "");
  8. PutObjectRequest putObjectRequest = new PutObjectRequest(
  9. S3Controller.bucketNameForBucket(S3Controller.Bucket.EXPORT_BUCKET),
  10. key,
  11. file);
  12. // we can always regenerate these files, so we can used reduced redundancy storage
  13. putObjectRequest.setStorageClass(StorageClass.Standard);
  14. String urlEncodedUTF8Filename = key;
  15. try {
  16. //http://www.bennadel.com/blog/2696-overriding-content-type-and-content-disposition-headers-in-amazon-s3-pre-signed-urls.htm
  17. //http://www.bennadel.com/blog/2591-embedding-foreign-characters-in-your-content-disposition-filename-header.htm
  18. //Issue#179
  19. urlEncodedUTF8Filename = URLEncoder.encode(fileName.substring(fileName.indexOf("-")), "UTF-8");
  20. } catch (UnsupportedEncodingException e) {
  21. LOG.warn("Could not URLEncode a filename. Original Filename: " + fileName, e );
  22. }
  23.  
  24. ObjectMetadata metadata = new ObjectMetadata();
  25. metadata.setContentDisposition("attachment; filename="" + key + ""; filename*=UTF-8''"+ urlEncodedUTF8Filename);
  26. putObjectRequest.setMetadata(metadata);
  27.  
  28. s3.putObject(putObjectRequest);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement