Unable to create a directory named space character using ADLS Gen2 REST API
I am unable to create a directory in "Azure Data Lake Storage Gen2" that is named as just a single space character, despite reviewing the documentation and there being no indication this is a disallowed name.
My primary access to "Azure Data Lake Storage Gen2" is using the Azure Data Lake Storage Gen2 REST API - most notably using the Hadoop ABFS File System provider.
In the REST API / ABFS, a dedicated operation to create a directory occurs. When it attempts the creation of the directory simply named " " (space) we get an exception.
2024-12-09 14:30:12.713 WARN - [action-pool-2 ] - a.b.c.RedactedClass : Exception migrating /test-data/dir1/ - will retry:
org.apache.hadoop.fs.azurebfs.contracts.exceptions.AbfsRestOperationException: Operation failed: "The request URI is invalid.", 400, PUT, https://REDACTED.dfs.core.windows.net/REDACTED/test-data/dir1/%20?resource=directory&timeout=90, InvalidUri, "The request URI is invalid. RequestId:00000000-0000-0000-0000-000000000000 Time:2024-12-09T14:30:12.7006415Z"
As noted, using the BLOB API, such as using azcopy, this works perfectly fine, as the space just becomes encoded as part of the BLOBs name
2024/12/05 16:19:24 ==> REQUEST/RESPONSE (Try=1/104.067886ms, OpTime=228.146948ms) -- RESPONSE SUCCESSFULLY RECEIVED
PUT https://REDACTED.blob.core.windows.net/REDACTED/dummy%2Fwp%2F%20%2Ffile?sdd=1&se=2024-12-06T00%3A13%3A02Z&sig=-REDACTED-&sp=racwdlmeop&sr=d&st=2024-12-05T16%3A13%3A02Z&sv=2022-11-02
X-Ms-Request-Id: [00000000-0000-0000-0000-000000000000]
According to the documentation, it identifies and confirms that BLOB storage does support this provided it is correctly escaped.The ADLS Gen2 documentation lacks any direct statement of non/support for this, but does state that it is built on BLOB with a direct statement.> Most Blob Storage features are fully supported, but some features might be supported only at the preview level and there are a handful of them that aren't yet supported
Reviewing the Features page https://learn.microsoft.com/en-us/azure/storage/blobs/storage-feature-support-in-storage-accounts does not rule them in or out.
Reviewing the Known Issues page https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-known-issues does not list it either as a known issue, or unsupported concept.
For all intent and purposes, there is an indication that this is a supportable concept.
Can anybody clarify this? Most ideally, have it documented?