Encode list blobs HTTP responses in UTF-8

Previously responses incorrectly encoded in ISO-8859-1.
pull/102/merge
Andrew Gaul 2015-12-22 18:16:03 -08:00
rodzic 0332a2107d
commit 024c7a3fe9
2 zmienionych plików z 26 dodań i 0 usunięć

Wyświetl plik

@ -998,6 +998,8 @@ final class S3ProxyHandler extends AbstractHandler {
}
options.maxResults(maxKeys);
response.setCharacterEncoding("UTF-8");
PageSet<? extends StorageMetadata> set = blobStore.list(containerName,
options);

Wyświetl plik

@ -54,10 +54,12 @@ import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
import com.amazonaws.services.s3.model.InitiateMultipartUploadResult;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.Owner;
import com.amazonaws.services.s3.model.PartETag;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import com.amazonaws.services.s3.model.UploadPartRequest;
import com.amazonaws.services.s3.model.UploadPartResult;
import com.google.common.base.Throwables;
@ -322,6 +324,28 @@ public final class S3AwsSdkTest {
}
}
@Test
public void testUnicodeObject() throws Exception {
AmazonS3 client = new AmazonS3Client(awsCreds,
new ClientConfiguration().withSignerOverride("S3SignerType"));
client.setEndpoint(s3Endpoint.toString());
String blobName = "ŪņЇЌœđЗ/☺ unicode € rocks ™";
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(BYTE_SOURCE.size());
client.putObject(containerName, blobName, BYTE_SOURCE.openStream(),
metadata);
metadata = client.getObjectMetadata(containerName, blobName);
assertThat(metadata).isNotNull();
ObjectListing listing = client.listObjects(containerName);
List<S3ObjectSummary> summaries = listing.getObjectSummaries();
assertThat(summaries).hasSize(1);
S3ObjectSummary summary = summaries.iterator().next();
assertThat(summary.getKey()).isEqualTo(blobName);
}
private static final class NullX509TrustManager
implements X509TrustManager {
@Override