gpt4 book ai didi

c++ - 当目标路径存在时 curl SFTP 重命名

转载 作者:行者123 更新时间:2023-11-30 05:44:43 31 4
gpt4 key购买 nike

我必须使用 SFTP 传输和 libcurl 定期更新服务器上的文件。根据许多来源和个人经验,我发现当目标路径指向已经存在的文件时,使用带有 SFTP 的 curl 的重命名命令失败。但是 sftp 客户端不能那样工作——相同的命令会覆盖现有文件。真的没有办法在 libcurl 上强制执行此行为吗?我知道先删除文件的选项,但随后出现的问题是,如果文件不存在,它就会失败,这对我来说仍然是一种解决方法,而不是解决方案。

编辑:libcurl 引发了 libssh2_sftp_rename_ex 的 LIBSSH2_SFTP_RENAME_OVERWRITE 标志,但它似乎不适用于某些版本的协议(protocol)/服务器

解决方法:添加命令“*rm”,指出 rm 可能会失败

最佳答案

我很确定原因是在 curl 无法通过 SFTP 重命名文件的情况下,这是因为服务器拒绝了它。我们已经看到某些服务器有时会发生这种情况,即使 curl 发送了“强制覆盖”选项也是如此。

其他客户端可能工作的原因可能是他们在后台执行 rm + mv,或者可能是因为他们与服务器协商不同的 SFTP 协议(protocol)版本(因此获得不同的行为)。

关于c++ - 当目标路径存在时 curl SFTP 重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655164/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com