Переименование файла Paramiko SFTP: OSError(«Расширенный запрос не поддерживается».)
Я ничего не могу найти об этом исключении. Я пытаюсь переименовать удаленный файл на локальном (Windows) сервере sFTP с помощью fsspec. Paramiko за кулисами выполняет posix_rename(). Что означает ошибка?
fs.rename(old_file_path, new_file_path)
Пути выглядят как
/folder/file.ext
.
2 ответа
На самом деле, я только что обнаружил, что SFTPClient доступен через SFTPFileSystem, и я могу напрямую вызывать rename() для него, что сработало!
fs.ftp.rename("testfile.txt", "x")
Действительно, fsspec называет Paramiko. Это имхо плохой выбор.
SFTPClient.posix_rename
внутренне использует проприетарный OpenSSH
posix-rename@openssh.com
расширение, которое, естественно, не поддерживается большинством других SFTP-серверов (например, вашим).
Я не знаю, что является лучшим решением/обходным путем. Вероятно, вы можете добавить свою собственную реализацию «файловой системы», основанную на
SFTPFileSystem
, повторная реализация
SFTPFileSystem.mv
вызвать стандартный ParamikoSFTPClient.rename
(который использует стандартный запрос на переименование SFTP).