diff --git a/azure/pom.xml b/azure/pom.xml index 55c36b94dc1..766b6d0939c 100644 --- a/azure/pom.xml +++ b/azure/pom.xml @@ -22,7 +22,7 @@ azure - 12.32.0 + 12.33.0 diff --git a/azure/src/main/java/ch/cyberduck/core/azure/AzureWriteFeature.java b/azure/src/main/java/ch/cyberduck/core/azure/AzureWriteFeature.java index 163ca66ea87..ba529eaf33f 100644 --- a/azure/src/main/java/ch/cyberduck/core/azure/AzureWriteFeature.java +++ b/azure/src/main/java/ch/cyberduck/core/azure/AzureWriteFeature.java @@ -141,11 +141,12 @@ public StatusOutputStream write(final Path file, final TransferStatus stat // Existing block blob type final PathAttributes attr = new AzureAttributesFinderFeature(session).find(file); if(BlobType.APPEND_BLOB == BlobType.valueOf(attr.getCustom().get(AzureAttributesFinderFeature.KEY_BLOB_TYPE))) { - out = client.getAppendBlobClient().getBlobOutputStream(true); + final AppendBlobClient append = client.getAppendBlobClient(); + // No BlockBlobOutputStreamOptions + out = append.getBlobOutputStream(true); } else { final BlockBlobOutputStreamOptions options = new BlockBlobOutputStreamOptions() - .setMetadata(metadata) .setHeaders(headers) .setMetadata(metadata); out = client.getBlockBlobClient().getBlobOutputStream(options); @@ -158,7 +159,6 @@ public StatusOutputStream write(final Path file, final TransferStatus stat case APPEND_BLOB: { final AppendBlobClient append = client.getAppendBlobClient(); final AppendBlobCreateOptions options = new AppendBlobCreateOptions() - .setMetadata(metadata) .setHeaders(headers) .setMetadata(metadata); append.createWithResponse(options, null, null); @@ -168,7 +168,6 @@ public StatusOutputStream write(final Path file, final TransferStatus stat default: { final BlockBlobClient block = client.getBlockBlobClient(); final BlockBlobOutputStreamOptions options = new BlockBlobOutputStreamOptions() - .setMetadata(metadata) .setHeaders(headers) .setMetadata(metadata); out = block.getBlobOutputStream(options); diff --git a/azure/src/test/java/ch/cyberduck/core/azure/AzureWriteFeatureTest.java b/azure/src/test/java/ch/cyberduck/core/azure/AzureWriteFeatureTest.java index 6155eee9289..0db6f75d646 100644 --- a/azure/src/test/java/ch/cyberduck/core/azure/AzureWriteFeatureTest.java +++ b/azure/src/test/java/ch/cyberduck/core/azure/AzureWriteFeatureTest.java @@ -65,6 +65,8 @@ public void testWriteOverrideAppendBlob() throws Exception { // Test double close overwrite.close(); assertEquals("overwrite".getBytes(StandardCharsets.UTF_8).length, new AzureAttributesFinderFeature(session).find(test).getSize()); + final Map appendMetadata = new AzureMetadataFeature(session).getMetadata(test); + assertEquals("text/plain", appendMetadata.get("Content-Type")); new AzureDeleteFeature(session).delete(Collections.singletonList(test), new DisabledLoginCallback(), new Delete.DisabledCallback()); } @@ -100,6 +102,8 @@ public void testWriteOverrideBlockBlob() throws Exception { // Test double close overwrite.close(); assertEquals("overwrite".getBytes(StandardCharsets.UTF_8).length, new AzureAttributesFinderFeature(session).find(test).getSize()); + final Map overwriteMetadata = new AzureMetadataFeature(session).getMetadata(test); + assertEquals("text/plain", overwriteMetadata.get("Content-Type")); new AzureDeleteFeature(session).delete(Collections.singletonList(test), new DisabledLoginCallback(), new Delete.DisabledCallback()); } }