JCLOUDS-1005: Percent encode user metadata values
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/a2e2ff8e Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/a2e2ff8e Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/a2e2ff8e Branch: refs/heads/master Commit: a2e2ff8e4f451ad396f8e956d7a2b6327a54333f Parents: 2ff68fc Author: Andrew Gaul <[email protected]> Authored: Thu Jun 23 16:17:13 2016 -0700 Committer: Andrew Gaul <[email protected]> Committed: Thu Jun 23 20:41:28 2016 -0700 ---------------------------------------------------------------------- .../main/java/org/jclouds/b2/binders/UploadFileBinder.java | 2 +- .../org/jclouds/b2/functions/ParseB2ObjectFromResponse.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/a2e2ff8e/providers/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java ---------------------------------------------------------------------- diff --git a/providers/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java b/providers/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java index 9384033..23ddf05 100644 --- a/providers/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java +++ b/providers/b2/src/main/java/org/jclouds/b2/binders/UploadFileBinder.java @@ -39,7 +39,7 @@ public final class UploadFileBinder implements MapBinder { .replaceHeader(HttpHeaders.AUTHORIZATION, uploadUrl.authorizationToken()) .replaceHeader(B2Headers.FILE_NAME, escaper.escape(fileName)); for (Map.Entry<String, String> entry : fileInfo.entrySet()) { - builder.replaceHeader(B2Headers.FILE_INFO_PREFIX + entry.getKey(), entry.getValue()); + builder.replaceHeader(B2Headers.FILE_INFO_PREFIX + entry.getKey(), escaper.escape(entry.getValue())); } return (R) builder.build(); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/a2e2ff8e/providers/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java ---------------------------------------------------------------------- diff --git a/providers/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java b/providers/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java index 35fcab9..f98e315 100644 --- a/providers/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java +++ b/providers/b2/src/main/java/org/jclouds/b2/functions/ParseB2ObjectFromResponse.java @@ -48,7 +48,13 @@ public final class ParseB2ObjectFromResponse implements Function<HttpResponse, B ImmutableMap.Builder<String, String> fileInfo = ImmutableMap.builder(); for (Map.Entry<String, String> entry : from.getHeaders().entries()) { if (entry.getKey().regionMatches(true, 0, B2Headers.FILE_INFO_PREFIX, 0, B2Headers.FILE_INFO_PREFIX.length())) { - fileInfo.put(entry.getKey().substring(B2Headers.FILE_INFO_PREFIX.length()), entry.getValue()); + String value; + try { + value = URLDecoder.decode(entry.getValue(), "UTF-8"); + } catch (UnsupportedEncodingException uee) { + throw Throwables.propagate(uee); + } + fileInfo.put(entry.getKey().substring(B2Headers.FILE_INFO_PREFIX.length()), value); } } Date uploadTimestamp = new Date(Long.parseLong(from.getFirstHeaderOrNull(B2Headers.UPLOAD_TIMESTAMP)));
