Encode filename in B2 download URL Previously this caused downloads of file names with % to fail.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c94dfa23 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c94dfa23 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c94dfa23 Branch: refs/heads/master Commit: c94dfa23e18e5d1bd949c01a28bb2e85c564999e Parents: 0d3b88b Author: Andrew Gaul <[email protected]> Authored: Sat Apr 8 15:43:45 2017 -0700 Committer: Andrew Gaul <[email protected]> Committed: Sat Apr 8 15:44:22 2017 -0700 ---------------------------------------------------------------------- .../src/main/java/org/jclouds/b2/blobstore/B2BlobStore.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/c94dfa23/providers/b2/src/main/java/org/jclouds/b2/blobstore/B2BlobStore.java ---------------------------------------------------------------------- diff --git a/providers/b2/src/main/java/org/jclouds/b2/blobstore/B2BlobStore.java b/providers/b2/src/main/java/org/jclouds/b2/blobstore/B2BlobStore.java index 907d0e2..b8d046c 100644 --- a/providers/b2/src/main/java/org/jclouds/b2/blobstore/B2BlobStore.java +++ b/providers/b2/src/main/java/org/jclouds/b2/blobstore/B2BlobStore.java @@ -16,7 +16,9 @@ */ package org.jclouds.b2.blobstore; +import java.io.UnsupportedEncodingException; import java.net.URI; +import java.net.URLEncoder; import java.util.Date; import java.util.List; import java.util.Map; @@ -480,7 +482,12 @@ public final class B2BlobStore extends BaseBlobStore { contentMetadata.setContentType(b2Object.contentType()); metadata.setContentMetadata(contentMetadata); metadata.setUserMetadata(b2Object.fileInfo()); - metadata.setPublicUri(URI.create(auth.get().downloadUrl() + "/file/" + container + "/" + b2Object.fileName())); + try { + metadata.setPublicUri(URI.create(auth.get().downloadUrl() + "/file/" + container + "/" + + URLEncoder.encode(b2Object.fileName(), "UTF-8"))); + } catch (UnsupportedEncodingException uee) { + throw new RuntimeException(uee); + } return metadata; } }
