Is Azure Put Blob Operation Atomic?

Documentation for Azure Put Blob The REST API operation tells us that you can download a block block of up to 64 MB with a single request.

I am wondering if such an operation is atomic. In particular, I need to know if the following assumptions are true or false.

  • If two or more clients simultaneously place a specific non-existent blob using this defining API If-None-Match: *, then at most one of them will succeed.

  • Fields using this API will never be partially disclosed. It will either not exist or exist with all the content that was placed (<64MB), including metadata.

Can anyone confirm or refute these assumptions?

+4
source share
2 answers

I received confirmation from a Microsoft Technical Support Specialist that both of these assumptions are true :

  • If two or more clients simultaneously place a specific non-existent blob using this defining API If-None-Match: *, then at most one of them will succeed.

  • Fields using this API will never be partially disclosed. It will either not exist or exist with all the content that was placed (<64MB), including metadata.

+3
source

Is Azure Put Blob an atom? Answer: Not at all.

Any attempt to read blob before step 3 completes the result of HTTP 404 (not found).

, 100% - , 404

blob 3 blob , HTTP 404 ( ) , 3 .

, , blob

blob If-None-Match: * 2 3, , HTTP 409 ( ) , blob .

: .

, HTTP/1.1 409 blob . ( If-None-Match: *)

, 201 ( , ), , . , , , , () .

, , , , 409.

, , , , .

+2

Source: https://habr.com/ru/post/1610511/