Azure / azure-storage-java

Microsoft Azure Storage Library for Java

Home Page:https://docs.microsoft.com/en-us/java/api/overview/azure/storage

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

404 when setting content type

ayedo opened this issue · comments

Which service(blob, file, queue, table) does this issue concern?

blob

Which version of the SDK was used?

v12

What problem was encountered?

I'm trying to set the content type of a blob I upload. I found out that I need to set BlobHttpHeaders for that, but when I do the creation throws a 404 ResoucreNotFound Exception.

val blobClient = containerClient.getBlobClient(documentUuid.toString()) val blockClient = blobClient.blockBlobClient blockClient.setHttpHeaders(BlobHttpHeaders().setContentType("application/pdf")) blobClient.blockBlobClient.blobOutputStream.use { s -> s.write(byteArray) }

Have you found a mitigation/solution?

No.

Hi, @ayedo Thank you for opening this issue. I suspect that you maybe have some experience using CloudBlockBlob in v8. In v8, when you call setBlobProperties (which then included content type), it sets a property on the CloudBlockBlob object that is uploaded when you either call uploadProperties or just upload. When you call setHttpHeaders on a blobClient in v12, it actually issues a request to set the properties on an object at that time, but you haven't yet created the object, which is why you're seeing a 404. If you want the properties to be set at the time of blob creation, you should pass them into the getBlobOutputStream() method of BlockBlobClient.

Please let me know if you have further questions or if this doesn't resolve your issue.

@rickle-msft thank you for your reply. That did solve the problem :)