@Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { AzureBlob azureBlob = sync.newBlob(); // fake values to satisfy BindAzureBlobMetadataToMultipartRequest azureBlob.setPayload(new byte[0]); azureBlob.getProperties().setContainer(mpu.containerName()); azureBlob.getProperties().setName(mpu.blobName()); azureBlob.getProperties().setContentMetadata((MutableContentMetadata) mpu.blobMetadata().getContentMetadata()); azureBlob.getProperties().setMetadata(mpu.blobMetadata().getUserMetadata()); ImmutableList.Builder<String> blocks = ImmutableList.builder(); for (MultipartPart part : parts) { String blockId = BaseEncoding.base64().encode(Ints.toByteArray(part.partNumber())); blocks.add(blockId); } return sync.putBlockList(mpu.containerName(), azureBlob, blocks.build()); }
@Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { AzureBlob azureBlob = sync.newBlob(); // fake values to satisfy BindAzureBlobMetadataToMultipartRequest azureBlob.setPayload(new byte[0]); azureBlob.getProperties().setContainer(mpu.containerName()); azureBlob.getProperties().setName(mpu.blobName()); azureBlob.getProperties().setContentMetadata((MutableContentMetadata) mpu.blobMetadata().getContentMetadata()); azureBlob.getProperties().setMetadata(mpu.blobMetadata().getUserMetadata()); ImmutableList.Builder<String> blocks = ImmutableList.builder(); for (MultipartPart part : parts) { String blockId = BaseEncoding.base64().encode(Ints.toByteArray(part.partNumber())); blocks.add(blockId); } return sync.putBlockList(mpu.containerName(), azureBlob, blocks.build()); }
@Test public void testExtendedPropertiesBind() { AzureBlob blob = injector.getInstance(AzureBlob.Factory.class).create(null); Payload payload = Payloads.newStringPayload(""); payload.getContentMetadata().setContentLength(64 * 1024 * 1024l); blob.setPayload(payload); blob.getProperties().setName("foo"); blob.getProperties().setMetadata(ImmutableMap.of("foo", "bar")); HttpRequest request = HttpRequest.builder().method("PUT").endpoint("http://localhost").build(); BindAzureBlobMetadataToRequest binder = injector.getInstance(BindAzureBlobMetadataToRequest.class); assertEquals( binder.bindToRequest(request, blob), HttpRequest.builder().method("PUT").endpoint("http://localhost") .addHeader("x-ms-blob-type", "BlockBlob") .addHeader("x-ms-meta-foo", "bar").build()); }
@Test public void testExtendedPropertiesBind() { AzureBlob blob = injector.getInstance(AzureBlob.Factory.class).create(null); Payload payload = Payloads.newStringPayload(""); payload.getContentMetadata().setContentLength(256 * 1024 * 1024L); blob.setPayload(payload); blob.getProperties().setName("foo"); blob.getProperties().setMetadata(ImmutableMap.of("foo", "bar")); HttpRequest request = HttpRequest.builder().method("PUT").endpoint("http://localhost").build(); BindAzureBlobMetadataToRequest binder = injector.getInstance(BindAzureBlobMetadataToRequest.class); assertEquals( binder.bindToRequest(request, blob), HttpRequest.builder().method("PUT").endpoint("http://localhost") .addHeader("x-ms-blob-type", "BlockBlob") .addHeader("x-ms-meta-foo", "bar").build()); }