使用 Curl 将构建推送到具有 SCP 协议的 Linux/Hadoop 环境会导致交付过时的构建

Using Curl to push build to Linux/Hadoop environment with SCP protocol result in stale build delivered

这是一个有趣的问题,我无法确定原因来自 CurlSCPLinux/Hadoop

当前环境有以下命令将构建推送到 Linux/Hadoop 环境。

curl -k -v scp://this.is.a.fake.url.com/linux/mount/drive/to/hadoop my-build.app

提供正确的用户名和密码后,构建成功推送。

然而,当我检查构建的内容时,它是以前版本的文件(之前上传的旧版本)。几乎感觉就像 Curl 或 linux/hadoop 有缓冲机制来保留旧版本(必须存储在某个地方)

我还发现了一个有趣的观察结果,如果我在 CURL 命令之前 删除 中 Hadoop/Linux 中的现有构建,该问题就不会再发生。所以问题是当使用 Curl 上传和 替换 现有文件时,在没有现有文件的情况下重新上传总是成功的

想知道有没有人有过类似的经历。

好吧,HDFS 文件是只读的。您不修改文件,您要么追加,要么替换 --> (创建新的,删除旧的,重命名为相同的文件名。)这与您所看到的一致,并且您的文件中可能存在丢失的错误消息安装工具。 (因为不可能修改它必须默默地失败)