Azure / Azurite

A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies
MIT License
1.74k stars 309 forks source link

Copy Blob From URL (Sync) does not support `x-ms-copy-source-tag-option` #2398

Open pinkfloydx33 opened 1 month ago

pinkfloydx33 commented 1 month ago

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

Blob

Which version of the Azurite was used?

3.30.0

Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)

DockerHub

What problem was encountered?

Sync CopyFromUri does not copy tags from the source blob. It does not appear to respect the x-ms-copy-source-tag-option header.

Furthermore, when x-ms-copy-source-tag-option is supplied as COPY, a 409 is supposed to be returned if any tags are specified via x-ms-tags.

Instead, in both cases tags specified via x-ms-tags are set on the new blob and original tags are never copied.

Steps to reproduce the issue?

Invoke Copy Blob from URL, passing x-ms-copy-source-tag-option=COPY with a source blob that has tabs set.

Also:

Invoke Copy Blob from URI, passing x-ms-copy-source-tag-option=COPY and also specify x-ms-tags and note that no 409 is returned and the tags specified in the request are set.

Have you found a mitigation/solution?

Copy the tags in a seperate operation, or retrieve them ahead of time and pass them via x-ms-tags

blueww commented 1 month ago

@pinkfloydx33

Thanks for raising this issue! The blob tag feature is still not implemented in copy blob API. We will look into this.