Open emarnadi-instabase opened 2 years ago
@emarnadi-instabase Would you please share the details for:
Sorry about the late reply
I still don't get what you mean by "marker", do you mean list blob delimiter or prefix, or something else? Please help to provide the debug log for azurite. (better with the program you use to repro the issue.)
The marker's the continuation token
@emarnadi-instabase Thanks for the reply! I can repro this issue in Azurite.
It looks this is caused by Azurite return different continuation token than server on list blob. Azurite just return the last blob name, but server will return a more complex format include the base64 encoded blob name and time. So currently Azurite can accept any string as continuation token since it might be a blob name.
A possible fix might be to base64 encode the continuation token from Azurite, then not all string can be accept.
The related API code in Azurite is https://github.com/Azure/Azurite/blob/da13df9115d9deb904e0fb0837dcd17f87c06d57/src/blob/handlers/ContainerHandler.ts#L616
Azurite welcome contribution! It would be great if you can raise a PR to fix this.
Which service(blob, file, queue, table) does this issue concern?
Blob Service
Which version of the Azurite was used?
1.16.0
Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
Visual Studio Code and DockerHub
What's the Node.js version?
6.14.6
What problem was encountered?
When passing in an invalid marker into ListBlobsHierarchy with the Azure Blob Storage, a 400 error is returned, but when passing the same invalid marker with the same 'folder' structure into Azurite, no error is returned.
Steps to reproduce the issue?
Call ListBlobsHierarchy and input a marker that is invalid.
Please be sure to remove any PII or sensitive information before sharing!
The debug log will log raw request headers and bodies, so that we can replay these against Azurite using REST and create tests to validate resolution.
Have you found a mitigation/solution?
NO