Giter Site home page Giter Site logo

Metadata Vanishing about azurite HOT 12 OPEN

Mojo1 avatar Mojo1 commented on August 24, 2024
Metadata Vanishing

from azurite.

Comments (12)

EmmaZhu avatar EmmaZhu commented on August 24, 2024

Hi @Mojo1 ,

By "After that metadata is gone", do you mean you cannot see the container's metadata from Microsoft Azure Storage explorer anymore?

I'll try to reproduce the issue. Meanwhile, is it possible for your to share Azurite debug log?

from azurite.

Mojo1 avatar Mojo1 commented on August 24, 2024

meta-blob-storage
meta-blob-storage-after-calling-endpoint-which-executes-lising

from azurite.

Mojo1 avatar Mojo1 commented on August 24, 2024

debug.log

from azurite.

blueww avatar blueww commented on August 24, 2024

@Mojo1

From the debug log, we only see 3 requests:

  • Service_ListContainersSegment
  • Container_ListBlobFlatSegment
  • Container_ListBlobFlatSegment

We don't see any requests related with add/remove/get container metadata.
Could you please give the Azurite debug log from adding container meta data to container meta data disappear?

Besides that, from the "Service_ListContainersSegment" request in the debug log, there is no Uri parameter "include=" with "metadata". Per the rest API doc , in this case the container metadata won't be returned. Azurite behavior is aligned with this.

from azurite.

Mojo1 avatar Mojo1 commented on August 24, 2024

Yes because i don't do such requests and thats the problem
I create the metadata manually in the Azure Storage Explorer.
I make a call to list all containers
I refresh view in Azure Storage Explorer and the Metadata is gone.
But i can already see it in my debug in java that the data is not there anymore.
I just do read request but something seems to be written

So cant show you whats not there. This Log mirrors everything happening between "metadata there" - "metadata gone"

So my impresseion is while getting the detailed list of the container the metadate is getting deleted while serializing it - but thats really just a wild guess.

Will check that include thing
This new log shows everything from startup to the point the medatdata getting deleted. Also how i create meta data via Azure Storage Explorer.
RequestMethod=PUT RequestURL=http://127.0.0.1/devstoreaccount1/vehicles-fr?restype=container&comp=metadata RequestHeaders:{"host":"127.0.0.1:10000","connection":"keep-alive","content-length":"0","x-ms-version":"2019-07-07","accept":"application/xml","x-ms-meta-metadata123":"value","x-ms-meta-hello":"dude","user-agent":"Microsoft Azure Storage Explorer/1.34.0 (win32) azsdk-js-storageblob/12.15.0 (NODE-VERSION v20.9.0; Windows_NT 10.0.19045)","x-ms-client-request-id":"5888f313-1fbf-4254-bf09-21b9f13cbb9d","x-ms-date":"Fri, 05 Jul 2024 08:00:51 GMT","authorization":"SharedKey devstoreaccount1:ctJDZYRo3BA9zbPJBfjXb3syY3ZXgk2XOA0BKopxNUs=","sec-fetch-site":"none","sec-fetch-mode":"no-cors","sec-fetch-dest":"empty","accept-encoding":"gzip, deflate, br","accept-language":"en-US"} ClientIP=127.0.0.1 Protocol=http HTTPVersion=1.1
debug.log

from azurite.

blueww avatar blueww commented on August 24, 2024

@Mojo1

From your last debug log, there's "Container_SetMetadata" operation, and the metadata is already set to the container.
However, in the debug log, after set metadate, not see any operation to get metadate.
There are only 3 requests after set metadata:

Service_ListContainersSegment
Container_ListBlobFlatSegment
Container_ListBlobFlatSegment

None of them will get container metadata. Especially the "Service_ListContainersSegment" not has Uri parameter "include=metadata" , so metadata will not be returned.
Please check if your client send the correct request to Azurite to get metadata. (It looks you are using java SDK instead of storage explorer from user agent.)

Besides that, I have checked with storage explorer (version 1.33.1(98)), the metadata set to container can be get by right click on the container and choose properties.
Following is the related Azurite debug on my machine, you can see with above operation in storage explorer, it will send a "Container_GetProperties" request, and the container metadate will be returned.

So this looks not an Azurite issue, but your client code issue.
If you would like to get container metadata with "Service_ListContainersSegment" operation, please add "include=metadata" in the request Uri.

2024-07-08T01:55:32.359Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info BlobStorageContextMiddleware: RequestMethod=PUT RequestURL=http://127.0.0.1/devstoreaccount1/container-a?restype=container&comp=metadata RequestHeaders:{"host":"127.0.0.1:10000","connection":"keep-alive","x-ms-version":"2019-07-07","accept":"application/xml","x-ms-meta-key1":"value1","x-ms-meta-metadata1":"value","user-agent":"Microsoft Azure Storage Explorer/1.33.1 (win32) azsdk-js-storageblob/12.15.0 (NODE-VERSION v18.18.2; Windows_NT 10.0.22631)","x-ms-client-request-id":"36de40c7-c02e-4bab-ac24-caca507eb551","x-ms-date":"Mon, 08 Jul 2024 01:55:32 GMT","authorization":"SharedKey devstoreaccount1:eXiU+B65auRXQm2Hr02Ztu5ES05KhPVfL7UTPEaw9fs=","accept-language":"*","sec-fetch-mode":"cors","accept-encoding":"gzip, deflate","content-length":"0"} ClientIP=127.0.0.1 Protocol=http HTTPVersion=1.1
2024-07-08T01:55:32.359Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info BlobStorageContextMiddleware: Account=devstoreaccount1 Container=container-a Blob=
2024-07-08T01:55:32.359Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 verbose DispatchMiddleware: Dispatching request...
2024-07-08T01:55:32.359Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info DispatchMiddleware: Operation=Container_SetMetadata
2024-07-08T01:55:32.360Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 verbose AuthenticationMiddlewareFactory:createAuthenticationMiddleware() Validating authentications.
2024-07-08T01:55:32.360Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info PublicAccessAuthenticator:validate() Start validation against public access.
2024-07-08T01:55:32.360Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 debug PublicAccessAuthenticator:validate() Getting account properties...
2024-07-08T01:55:32.360Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 debug PublicAccessAuthenticator:validate() Retrieved account name from context: devstoreaccount1, container: container-a, blob: 
2024-07-08T01:55:32.360Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 debug PublicAccessAuthenticator:validate() Skip public access authentication. Cannot get public access type for container container-a
2024-07-08T01:55:32.360Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info BlobSharedKeyAuthenticator:validate() Start validation against account shared key authentication.
2024-07-08T01:55:32.361Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info BlobSharedKeyAuthenticator:validate() [STRING TO SIGN]:"PUT\n\n\n\n\n\n\n\n\n\n\n\nx-ms-client-request-id:36de40c7-c02e-4bab-ac24-caca507eb551\nx-ms-date:Mon, 08 Jul 2024 01:55:32 GMT\nx-ms-meta-key1:value1\nx-ms-meta-metadata1:value\nx-ms-version:2019-07-07\n/devstoreaccount1/devstoreaccount1/container-a\ncomp:metadata\nrestype:container"
2024-07-08T01:55:32.361Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info BlobSharedKeyAuthenticator:validate() Calculated authentication header based on key1: SharedKey devstoreaccount1:eXiU+B65auRXQm2Hr02Ztu5ES05KhPVfL7UTPEaw9fs=
2024-07-08T01:55:32.361Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info BlobSharedKeyAuthenticator:validate() Signature 1 matched.
2024-07-08T01:55:32.362Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 verbose DeserializerMiddleware: Start deserializing...
2024-07-08T01:55:32.362Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info HandlerMiddleware: DeserializedParameters={"options":{"metadata":{"key1":"value1","metadata1":"value"},"requestId":"36de40c7-c02e-4bab-ac24-caca507eb551","leaseAccessConditions":{},"modifiedAccessConditions":{}},"restype":"container","comp":"metadata","version":"2019-07-07"}
2024-07-08T01:55:32.366Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 verbose SerializerMiddleware: Start serializing...
2024-07-08T01:55:32.366Z 4239c551-0a89-4e2d-8db4-dc1a45bd03a5 info EndMiddleware: End response. TotalTimeInMS=7 StatusCode=200 StatusMessage=undefined Headers={"server":"Azurite-Blob/3.31.0","etag":"\"0x23C678A3320D8C0\"","last-modified":"Mon, 08 Jul 2024 01:55:32 GMT","x-ms-client-request-id":"36de40c7-c02e-4bab-ac24-caca507eb551","x-ms-request-id":"4239c551-0a89-4e2d-8db4-dc1a45bd03a5","date":"Mon, 08 Jul 2024 01:55:32 GMT"}
2024-07-08T01:55:45.801Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info BlobStorageContextMiddleware: RequestMethod=GET RequestURL=http://127.0.0.1/devstoreaccount1/container-a?restype=container RequestHeaders:{"host":"127.0.0.1:10000","connection":"keep-alive","x-ms-version":"2019-07-07","accept":"application/xml","user-agent":"Microsoft Azure Storage Explorer/1.33.1 (win32) azsdk-js-storageblob/12.15.0 (NODE-VERSION v18.18.2; Windows_NT 10.0.22631)","x-ms-client-request-id":"20cd8d95-0010-4f59-8e58-dbf55dfcab7d","x-ms-date":"Mon, 08 Jul 2024 01:55:45 GMT","authorization":"SharedKey devstoreaccount1:ijVokZhLHvedpAA3jAjbcHSv3ALeKsFMzw2/R/dJ4hE=","accept-language":"*","sec-fetch-mode":"cors","accept-encoding":"gzip, deflate"} ClientIP=127.0.0.1 Protocol=http HTTPVersion=1.1
2024-07-08T01:55:45.801Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info BlobStorageContextMiddleware: Account=devstoreaccount1 Container=container-a Blob=
2024-07-08T01:55:45.801Z 1b0f7548-f259-4922-95e2-226e5d5c4874 verbose DispatchMiddleware: Dispatching request...
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info DispatchMiddleware: Operation=Container_GetProperties
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 verbose AuthenticationMiddlewareFactory:createAuthenticationMiddleware() Validating authentications.
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info PublicAccessAuthenticator:validate() Start validation against public access.
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 debug PublicAccessAuthenticator:validate() Getting account properties...
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 debug PublicAccessAuthenticator:validate() Retrieved account name from context: devstoreaccount1, container: container-a, blob: 
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 debug PublicAccessAuthenticator:validate() Skip public access authentication. Cannot get public access type for container container-a
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info BlobSharedKeyAuthenticator:validate() Start validation against account shared key authentication.
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info BlobSharedKeyAuthenticator:validate() [STRING TO SIGN]:"GET\n\n\n\n\n\n\n\n\n\n\n\nx-ms-client-request-id:20cd8d95-0010-4f59-8e58-dbf55dfcab7d\nx-ms-date:Mon, 08 Jul 2024 01:55:45 GMT\nx-ms-version:2019-07-07\n/devstoreaccount1/devstoreaccount1/container-a\nrestype:container"
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info BlobSharedKeyAuthenticator:validate() Calculated authentication header based on key1: SharedKey devstoreaccount1:ijVokZhLHvedpAA3jAjbcHSv3ALeKsFMzw2/R/dJ4hE=
2024-07-08T01:55:45.802Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info BlobSharedKeyAuthenticator:validate() Signature 1 matched.
2024-07-08T01:55:45.803Z 1b0f7548-f259-4922-95e2-226e5d5c4874 verbose DeserializerMiddleware: Start deserializing...
2024-07-08T01:55:45.803Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info HandlerMiddleware: DeserializedParameters={"options":{"requestId":"20cd8d95-0010-4f59-8e58-dbf55dfcab7d","leaseAccessConditions":{}},"restype":"container","version":"2019-07-07"}
2024-07-08T01:55:45.803Z 1b0f7548-f259-4922-95e2-226e5d5c4874 verbose SerializerMiddleware: Start serializing...
2024-07-08T01:55:45.803Z 1b0f7548-f259-4922-95e2-226e5d5c4874 info EndMiddleware: End response. TotalTimeInMS=2 StatusCode=200 StatusMessage=undefined Headers={"server":"Azurite-Blob/3.31.0","x-ms-meta-key1":"value1","x-ms-meta-metadata1":"value","etag":"\"0x23C678A3320D8C0\"","last-modified":"Mon, 08 Jul 2024 01:55:32 GMT","x-ms-lease-state":"available","x-ms-lease-status":"unlocked","x-ms-client-request-id":"20cd8d95-0010-4f59-8e58-dbf55dfcab7d","x-ms-request-id":"1b0f7548-f259-4922-95e2-226e5d5c4874","x-ms-version":"2024-08-04","x-ms-has-immutability-policy":"false","x-ms-has-legal-hold":"false"}
2024-07-08T01:55:59.554Z 	 info AccountDataStore:init() Refresh accounts from environment variable AZURITE_ACCOUNTS with value undefined
2024-07-08T01:55:59.554Z 	 info AccountDataStore:init() Fallback to default emulator account devstoreaccount1.

Besides that, I have also tested with storage explorer, if you choose "Blob Container" node, right click and choose refresh, it will send a "Service_ListContainersSegment" request with Uri http://127.0.0.1/devstoreaccount1?comp=list&include=metadata.
Since the Uri has "include=metadata", container metadata will be returned in the responds. See the debug log below for details. (The responds has <Metadata><key1>value1</key1><Metadata1>value</Metadata1></Metadata>)

2024-07-08T02:09:27.082Z d7623856-7bc2-49a3-adf4-857cd445b8da info BlobStorageContextMiddleware: RequestMethod=GET RequestURL=http://127.0.0.1/devstoreaccount1?comp=list&include=metadata RequestHeaders:{"host":"127.0.0.1:10000","connection":"keep-alive","x-ms-version":"2019-07-07","accept":"application/xml","user-agent":"Microsoft Azure Storage Explorer/1.33.1 (win32) azsdk-js-storageblob/12.15.0 (NODE-VERSION v18.18.2; Windows_NT 10.0.22631)","x-ms-client-request-id":"b769ff23-bead-43f9-9592-2e28df98afa1","x-ms-date":"Mon, 08 Jul 2024 02:09:27 GMT","authorization":"SharedKey devstoreaccount1:lQt8Gs+uZBLhtGQcmhGqaFQRtfxOOGNJJ4vS484e9tQ=","accept-language":"*","sec-fetch-mode":"cors","accept-encoding":"gzip, deflate"} ClientIP=127.0.0.1 Protocol=http HTTPVersion=1.1
2024-07-08T02:09:27.082Z d7623856-7bc2-49a3-adf4-857cd445b8da info BlobStorageContextMiddleware: Account=devstoreaccount1 Container=undefined Blob=
2024-07-08T02:09:27.082Z d7623856-7bc2-49a3-adf4-857cd445b8da verbose DispatchMiddleware: Dispatching request...
2024-07-08T02:09:27.082Z d7623856-7bc2-49a3-adf4-857cd445b8da info DispatchMiddleware: Operation=Service_ListContainersSegment
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da verbose AuthenticationMiddlewareFactory:createAuthenticationMiddleware() Validating authentications.
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da info PublicAccessAuthenticator:validate() Start validation against public access.
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da debug PublicAccessAuthenticator:validate() Getting account properties...
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da debug PublicAccessAuthenticator:validate() Retrieved account name from context: devstoreaccount1, container: undefined, blob: 
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da info PublicAccessAuthenticator:validate() Skip public access authentication. Container name is undefined.
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da info BlobSharedKeyAuthenticator:validate() Start validation against account shared key authentication.
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da info BlobSharedKeyAuthenticator:validate() [STRING TO SIGN]:"GET\n\n\n\n\n\n\n\n\n\n\n\nx-ms-client-request-id:b769ff23-bead-43f9-9592-2e28df98afa1\nx-ms-date:Mon, 08 Jul 2024 02:09:27 GMT\nx-ms-version:2019-07-07\n/devstoreaccount1/devstoreaccount1\ncomp:list\ninclude:metadata"
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da info BlobSharedKeyAuthenticator:validate() Calculated authentication header based on key1: SharedKey devstoreaccount1:lQt8Gs+uZBLhtGQcmhGqaFQRtfxOOGNJJ4vS484e9tQ=
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da info BlobSharedKeyAuthenticator:validate() Signature 1 matched.
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da verbose DeserializerMiddleware: Start deserializing...
2024-07-08T02:09:27.083Z d7623856-7bc2-49a3-adf4-857cd445b8da info HandlerMiddleware: DeserializedParameters={"options":{"include":["metadata"],"requestId":"b769ff23-bead-43f9-9592-2e28df98afa1"},"comp":"list","version":"2019-07-07"}
2024-07-08T02:09:27.084Z d7623856-7bc2-49a3-adf4-857cd445b8da verbose SerializerMiddleware: Start serializing...
2024-07-08T02:09:27.084Z d7623856-7bc2-49a3-adf4-857cd445b8da debug Serializer: Raw response body string is <?xml version="1.0" encoding="UTF-8" standalone="yes"?><EnumerationResults ServiceEndpoint="http://127.0.0.1:10000/devstoreaccount1"><Prefix/><MaxResults>5000</MaxResults><Containers><Container><Name>container-a</Name><Properties><Last-Modified>Mon, 08 Jul 2024 01:55:32 GMT</Last-Modified><Etag>"0x23C678A3320D8C0"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState><HasImmutabilityPolicy>false</HasImmutabilityPolicy><HasLegalHold>false</HasLegalHold></Properties><Metadata><key1>value1</key1><Metadata1>value</Metadata1></Metadata></Container><Container><Name>container-b</Name><Properties><Last-Modified>Mon, 29 Apr 2024 03:28:43 GMT</Last-Modified><Etag>"0x25BC23049990840"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState><HasImmutabilityPolicy>false</HasImmutabilityPolicy><HasLegalHold>false</HasLegalHold></Properties></Container><Container><Name>weitest</Name><Properties><Last-Modified>Tue, 04 Jun 2024 03:19:37 GMT</Last-Modified><Etag>"0x2160E51D92AB220"</Etag><LeaseStatus>unlocked</LeaseStatus><LeaseState>available</LeaseState><HasImmutabilityPolicy>false</HasImmutabilityPolicy><HasLegalHold>false</HasLegalHold></Properties></Container></Containers><NextMarker/></EnumerationResults>
2024-07-08T02:09:27.084Z d7623856-7bc2-49a3-adf4-857cd445b8da info Serializer: Start returning stream body.
2024-07-08T02:09:27.084Z d7623856-7bc2-49a3-adf4-857cd445b8da info EndMiddleware: End response. TotalTimeInMS=2 StatusCode=200 StatusMessage=OK Headers={"server":"Azurite-Blob/3.31.0","x-ms-client-request-id":"b769ff23-bead-43f9-9592-2e28df98afa1","x-ms-request-id":"d7623856-7bc2-49a3-adf4-857cd445b8da","x-ms-version":"2024-08-04","content-type":"application/xml"}
2024-07-08T02:09:27.094Z e2e513d7-e302-48d0-b0da-979128f0bcce info BlobStorageContextMiddleware: RequestMethod=GET RequestURL=http://127.0.0.1/devstoreaccount1/%24logs?restype=container RequestHeaders:{"host":"127.0.0.1:10000","connection":"keep-alive","x-ms-version":"2019-07-07","accept":"application/xml","user-agent":"Microsoft Azure Storage Explorer/1.33.1 (win32) azsdk-js-storageblob/12.15.0 (NODE-VERSION v18.18.2; Windows_NT 10.0.22631)","x-ms-client-request-id":"7ed1ce89-c9e5-44d7-a775-063f126e5e74","x-ms-date":"Mon, 08 Jul 2024 02:09:27 GMT","authorization":"SharedKey devstoreaccount1:KECGelFwzB/L6Us/Orjs0UuPxu7DEHj48lZ2h3VPPIo=","accept-language":"*","sec-fetch-mode":"cors","accept-encoding":"gzip, deflate"} ClientIP=127.0.0.1 Protocol=http HTTPVersion=1.1

from azurite.

Mojo1 avatar Mojo1 commented on August 24, 2024

However, I believe there is still an issue. Here is my situation:

I create metadata in Storage Explorer.
Then, I fetch the blob container data with the SDK.
Afterward, when I check in Storage Explorer, the metadata has been deleted.

Even if I do not include the &include=metadata parameter, the metadata should remain intact.
So my expectaion if i perform a GET Request is: nothing will be written

from azurite.

blueww avatar blueww commented on August 24, 2024

@Mojo1

Thanks for your reply!

However, why you think "the metadata has been deleted."
(Yes, Get won't delete metadata. Actually Get should not update anything on server.)

If you do not "include the &include=metadata parameter" in list container, the container metadata on Server still remain, but won't return in the list container result.
Then if you send a get container properties request, or a list container request with "&include=metadata" , you should can see the container metadata.

If "the metadata has been deleted" is true, please give the Azurite debug log from add the metadata, to the request you think metadata should be return but not return.
From the before debug log, we only see metadata been added, but not see a request to retrieve metadata.

from azurite.

Mojo1 avatar Mojo1 commented on August 24, 2024

Here is a new log.

  • In line 15 there is the PUT request from Storage Explorer which creates the metadata: "x-ms-meta-examplekey":"exampleValue"
  • In line 33 there is a GET request Storage Explorer returning the metadata in line 46: "x-ms-meta-examplekey":"exampleValue" (I closed the properties in Storage explorer and opened it again - verifing the metadata is still there)
  • In line 93 there is a GET request Storage Explorer returning the metadata in line 106: "x-ms-meta-examplekey":"exampleValue" (I closed the properties in Storage explorer and opened it again - verifing the metadata is still there)
  • In line 133 it's the GET request from SDK. Without metadata which is okay because i didnt's put include=metadata
  • Line 152 SDK GET request for blob container vehicles-de with answer in line 170. Without metadata which is okay because i didnt's put include=metadata
  • Line 171 SDK GET request for blob container vehicles-fr with answer in line 186. Without metadata which is okay because i didnt's put include=metadata
  • line 337 NOW Request from Storage Explorer again it the same GET request as in line 33 but the metadata "x-ms-meta-examplekey":"exampleValue" is missing in line 350

So there has been ONE Put request and a lot of GET requests. Still data changes after GET requests only

debug.log

from azurite.

blueww avatar blueww commented on August 24, 2024

@Mojo1

Thanks for the new log!
I can repro this issue now.

It looks list container request without "&include=metadata" will clear the container metadata, the related code is:

container.metadata = undefined;

Seems the above code will not only clear metadate in the return value, but also the metadate of the container on server.

We will see how to fix this issue.

from azurite.

blueww avatar blueww commented on August 24, 2024

I have raised a PR to fix this issue: #2426

from azurite.

Mojo1 avatar Mojo1 commented on August 24, 2024

Okay, thanks everybody
communication sometimes hardest task for all parties) So keep up the good work

from azurite.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.