У меня возникла проблема с FTP с использованием API com.jscape.FileTransfer, который я не смог понять уже достаточно давно. Вот мой код:Jscape SFTP/FTP-загрузка в корневой каталог не работает
public void do FTPTest() {
FileTransfer f = protocol.equalsIgnoreCase("FTP") ? new FtpTransfer(ftpHost, userName, password, new Integer((int) port)) : (protocol.equalsIgnoreCase("SFTP") ? new SftpTransfer(
ftpHost,
userName,
password,
new Integer((int) port)) : null);
try {
f.connect();
f.setAuto();
System.out.println(f.getDir());
f.upload("test".getBytes(), "ktest1.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
Этот код просто подключается к серверу/SFTP FTP и загружает файл с именем «ktest.txt»
Моя проблема происходит, когда я пытаюсь загрузить файлы в корневой каталог сайт FTP/SFTP.
Случай 1: Подключение к FTP сайта 'A'
f.getDir() --> '/'
f.upload() --> SUCCEEDS
Случай 2: Подключение к SFTP сайта 'B'
f.getDir() --> '/'
f.upload() --> FAILS (with permission denied error)
Однако
Случай 3: Подключение к SFTP сайт 'В'
f.getDir() --> '/'
f.setDirUp()
f.getDir() --> ''
f.upload() --> SUCCEEDS
Обратите внимание, как она работает, когда я делаю setDirUp()
Если я пытаюсь сделать то же самое на сайте А,
Случай 4: Подключение к FTP сайта 'A'
f.getDir() --> '/'
f.setDirUp() (permission denied error)
Все случаи если вы делаете setDir ('testFolder') перед загрузкой файла. то есть, который не находится в базовом каталоге.
Я не понимаю, как выполнение setDirUp из '/' -> '' позволяет загружать файл в базовый каталог. Что происходит, когда вы делаете UP с '/'. Что '' ?
И как загрузка в '/' работает на некоторых FTP-сайтах.
BTW оба FTP-сайта позволяют загружать файлы в базовый каталог без каких-либо проблем с помощью клиента, такого как WinSCP.
Я могу загрузить файлы в порядке «/» с помощью FTP-клиента. –
Странно то, что когда я делаю getDirListing() на '/' или '', он дает мне то же самое содержимое. Поэтому я не понимаю, как это волшебство работает после выполнения setDirUp(). –
Я уверен, что это связано с настройкой данного FTP/SFTP-сервера. Можете ли вы просто попытаться сделать то же самое на любом другом общедоступном FTP/SFTP-сервере с анонимным доступом и подтвердить, что проблема не устранена. – Archer