我在ADLS Gen 2 API路径操作中遇到了一些端点问题。
我可以很好地创建、列出、获取和删除文件系统的属性。
但是,将目录添加到文件系统后,某些动词会失败 - HEAD、GET 和 DELETE。
例如,我创建了一个名为 c79b0781 的文件系统,目录路径为 abc/def
调用失败,状态码为 400(指定的 HTTP 动词无效 - 服务器无法识别。):DELETE https://myadls.dfs.core.windows.net/c79b0781/abc?recursive=true&timeout=30
对于标题,我有:
x-ms-版本:2018-11-09
我可以从 Azure 存储资源管理器中删除文件系统,但 API 拒绝我的查询。
List 操作也因类似错误而失败
调用失败,状态码为 400(指定的 HTTP 动词无效 - 服务器无法识别。):GET https://myadls.dfs.core.windows.net/c79b0781?resource=filesystem&recursive=false&timeout=30
带标题:
x-ms-版本:2018-11-09
最后,我的 Get Properties 也失败了
调用失败,状态码为 400(指定的 HTTP 动词无效 - 服务器无法识别。):HEAD https://myadls.dfs.core.windows.net/c79b0781?resource=filesystem&timeout=30
它似乎只在我将目录添加到文件系统时发生。
更深入一点:
此测试有效
放https://myadls.dfs.core.windows.net/c79b0781?resource=filesystem
获取https://myadls.dfs.core.windows.net/c79b0781?recursive=false&resource=filesystem
删除https://myadls.dfs .core.windows.net/c79b0781?resource=文件系统
我的第二个目录创建测试
PUT https://myadls.dfs.core.windows.net/c79b0781?resource=filesystem
PUT https://myadls.dfs.core.windows.net/c79b0781/abc/123?resource=directory
此后,调用开始拒绝 HTTP 动词
获取https://myadls.dfs.core.windows.net/c79b0781?recursive=false&resource=filesystem
仔细检查我的目录创建请求,它看起来像这样:
把https://myadls.dfs.core.windows.net/c79b0781/abc/123?resource=directory
带标题:
授权:[省略]
内容长度:0
而且我可以在存储资源管理器中看到文件夹,在此之后我无法对它们采取行动。
测试用例 2
我已经开始了一条路,想知道它是否是权限。因此,我通过 Azure 存储资源管理器创建了一个新的文件系统,其中包含 abc/def 文件夹结构。
测试 1(通过)
获取目录“abc”
的列表 获取目录“abc/def”的列表
测试 2(失败)
创建目录 "uvw/xyz"
获取目录 "abc" 的列表在这里失败
获取目录 "abc/def"
的列表 获取目录 "uvw/xyz" 的列表
一旦我通过 api 创建了一个目录,就好像整个文件系统开始拒绝所有 HTTP 请求。