Вопрос или проблема
Я пытаюсь загрузить данные с https://data.tpdc.ac.cn/en/data/30131436-88d1-4be3-8e3d-14905a29d6d6/. Я использую curl -u download_68313574:22193606 'ftp://ftp2.tpdc.ac.cn:6201/SM_1km_Month/*' -o .
, но он не отвечает с RETR ответом: 550.
Любая помощь будет полезна.
Для меня curl
сообщает
curl: (78) Файл не существует.
Я не уверен, что curl
(с вышеуказанной командой) может обрабатывать и загружать подкаталоги.
Но я пробую с wget
с командой:
wget -r ftp://download_68313574:[email protected]:6201/SM_1km_Month/*
и это работает хорошо для меня:
--2024-10-24 19:49:57-- ftp://download_68313574:*password*@ftp2.tpdc.ac.cn:6201/SM_1km_Month/*
=> ‘ftp2.tpdc.ac.cn+6201/SM_1km_Month/.listing’
Разрешение ftp2.tpdc.ac.cn (ftp2.tpdc.ac.cn)... 210.72.14.201
Подключение к ftp2.tpdc.ac.cn (ftp2.tpdc.ac.cn)|210.72.14.201|:6201... подключено.
Вход как download_68313574 ... Успешно вошел!
==> SYST ... готово. ==> PWD ... готово.
==> TYPE I ... готово. ==> CWD (1) /SM_1km_Month ... готово.
==> PASV ... готово. ==> LIST ... готово.
ftp2.tpdc.ac.cn+6201/SM_1km_ [ <=> ] 1,52K --.-KB/s за 0,006с
2024-10-24 19:50:00 (260 КБ/с) - ‘ftp2.tpdc.ac.cn+6201/SM_1km_Month/.listing’ сохранен [1559]
Удален ‘ftp2.tpdc.ac.cn+6201/SM_1km_Month/.listing’.
--2024-10-24 19:50:00-- ftp://download_68313574:*password*@ftp2.tpdc.ac.cn:6201/SM_1km_Month/2000/*
=> ‘ftp2.tpdc.ac.cn+6201/SM_1km_Month/2000/.listing’
==> CWD (1) /SM_1km_Month/2000 ... готово.
==> PASV ... готово. ==> LIST ... готово.
ftp2.tpdc.ac.cn+6201/SM_1km_ [ <=> ] 1,19K --.-KB/s за 0,006с
2024-10-24 19:50:01 (199 КБ/с) - ‘ftp2.tpdc.ac.cn+6201/SM_1km_Month/2000/.listing’ сохранен [1220]
Удален ‘ftp2.tpdc.ac.cn+6201/SM_1km_Month/2000/.listing’.
--2024-10-24 19:50:01-- ftp://download_68313574:*password*@ftp2.tpdc.ac.cn:6201/SM_1km_Month/2000/SM.1km.Month.200002.Global.v001.tif
=> ‘ftp2.tpdc.ac.cn+6201/SM_1km_Month/2000/SM.1km.Month.200002.Global.v001.tif’
==> CWD не требуется.
==> PASV ... готово. ==> RETR SM.1km.Month.200002.Global.v001.tif ... готово.
Длина: 423861286 (404M)
ftp2.tpdc.ac.cn+62 0%[ ] 136,51K 112КБ/с
<snip>
Ответ или решение
Проблема с использованием curl для загрузки данных с FTP-сервера
Когда вы пытаетесь получить данные с FTP-сервера с помощью команды curl
, и сталкиваетесь с проблемами, такими как ошибка 550 или сообщение о том, что файл не существует, важно учитывать несколько моментов. Я приведу вам детали, которые помогут устранить возникшие трудности.
Описание проблемы
Вы используете следующую команду curl
:
curl -u download_68313574:22193606 'ftp://ftp2.tpdc.ac.cn:6201/SM_1km_Month/*' -o .
Вы получаете ошибку:
curl: (78) The file does not exist
Эта ошибка обычно указывает на то, что запрашиваемый ресурс не может быть найден на сервере FTP. Ваша команда пытается использовать символ подстановки (*
), что может быть одной из причин возникновения проблемы, поскольку не все клиенты поддерживают его в контексте FTP-запросов.
Альтернативное решение с использованием wget
Вы упомянули, что аналогичная команда с использованием wget
работает:
wget -r ftp://download_68313574:22193606@ftp2.tpdc.ac.cn:6201/SM_1km_Month/*
Команда wget
поддерживает рекурсивную загрузку, что может быть ключом к вашему успешному получению данных. Она способна обходить подкаталоги и загружать файлы с них, в то время как curl
в основном предназначен для выполнения отдельных запросов.
Возможные решения для curl
Если вы хотите продолжить использовать curl
, вот несколько шагов, которые могут помочь:
-
Проверьте доступность файлов: Убедитесь, что файлы действительно существуют. Для этого можно сначала выполнить команду LIST, используя
curl
, чтобы проверить доступные файлы:curl -u download_68313574:22193606 'ftp://ftp2.tpdc.ac.cn:6201/SM_1km_Month/'
Это даст вам список файлов и папок, доступных в директории.
-
Используйте полные пути: Вместо использования символов подстановки, попробуйте указать полный путь к конкретному файлу, который вы хотите скачать.
-
Включите отладку: Добавьте опцию
-v
к командеcurl
, чтобы получить более подробную информацию о том, что происходит в процессе выполнения.curl -v -u download_68313574:22193606 'ftp://ftp2.tpdc.ac.cn:6201/SM_1km_Month/some_file.tif' -o some_file.tif
Заключение
Использование wget
в вашем случае является более подходящим вариантом для работы с директорными структурами на FTP-сервере. Если вы хотите продолжить работать с curl
, обязательно убедитесь в правильности пути и наличии необходимых файлов. Надеюсь, это поможет вам успешно загрузить требуемые данные. Если возникают дополнительные вопросы, пожалуйста, дайте знать.