我已使用以下 curl 命令尝试过此操作并取得了成功:
curl -i -v -k -u guest:guest-password -L -T /Users/larry/hadoop-examples.jar -X PUT "https://{localhost}:8443/gateway/sandbox/webhdfs/v1/user/guest/knox-sample/lib/hadoop-examples.jar?op=CREATE"
它导致了预期的 HTTP 100 继续,307 用于重定向和 PUT 以及 201 创建。
随后的 curl 命令列出了目标目录的内容,成功地将文件列为存在:
curl -i -v -k -u guest:guest-password https://localhost:8443/gateway/sandbox/webhdfs/v1/user/guest/knox-sample/lib?op=LISTSTATUS
您提出的 curl 命令中有几件事有点奇怪:
- 反斜杠延续字符似乎是从不需要的地方复制示例而遗留下来的
- 您没有完成 URL 周围的引号
- URL 中主机 ip 周围的 {} 括号也可能是您复制的示例中的变量遗留下来的 - 我认为它们不会伤害任何东西,因为我尝试了它并且它有效。
我怀疑上述问题的某些组合导致 URL 被截断或 PUT 不适合接收到的 URL 和/或操作参数。
我希望这对你有帮助。
如果用户指南对此不清楚,那么我们希望您提交jira,我们会解决这个问题。