Hello,
I am experiencing an issue which I can't seem to find documentation for.
I am attempting to write a directory which is >= 60 && < 255 path segments '/' long, into a container in an ADLS Gen2 storage.
If I try to create a directory structure in the container through the azure portal, azure cli or using the apache hadoop java library we receive the following error :
"This operation is not permitted as the path is too deep.", 409, PUT, https://<storageaccountname>.dfs.core.windows.net/<containername>/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test?resource=directory&timeout=90, PathIsTooDeep, "This operation is not permitted as the path is too deep.
As you can see from the error, we attempt to write test/test/.... with 60 path segments. Removing one of these subdirectories will allow the creation of the directories with no error message. Therefore, anything which is >= 60 will result in the above 'PathIsTooDeep' error and the creation of this first 59 directories. The total path segments in the entire URL totals 64.
The documentation states :
The number of path segments comprising the blob name cannot exceed 254. A path segment is the string between consecutive delimiter characters (e.g., the forward slash '/') that corresponds to the name of a virtual directory.
ref : https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata
Is there any information that would clarify this issue? Is it the expectation that a container in Gen2 storage is limited to a directory structure comprised of < 60 segments, or is this a bug? It is worth noting that this does not occur with Gen1 storage accounts. So I am curious, does this have something to do with the hierarchical namespace support that was added for containers in Gen2?
Any information or explanation would be highly appreciated.
-Gareth