Использование wget с командной строкой Windows для загрузки файлов вне каталога сайта

0

Я должен загрузить файлы, которые находятся за пределами каталога моего сайта, используя wgetWindows, позвольте мне сделать это более понятным.

Мой сайт работает на сервере Linux.

Domain  ---> www.example.com

/var/www/html ---> This is the my site directory

/home/username/data.csv  ---> This is the file I wants to download

Когда я пытаюсь скачать любой файл из каталога сайта, он работает нормально, но не скачивается отсюда /home/username/data.csv

c:\wget\ wget.exe --ftp-user="username" --ftp-password="password" "www.example.com/index.php"

Приведенная выше команда работает хорошо и index.phpфайл успешно загружен.

Но как настроить таргетинг на /home/username/data.csvфайл и скачать с помощью wget?

Я пытался с этим, но я был уверен, что это не сработает.

c:\wget\ wget.exe --ftp-user="username" --ftp-password="password" "www.example.com/home/username/data.csv"

Я могу понять, почему эта команда не работает и возвращает 404 error, потому что домен указывает на /var/www/htmlкаталог, следовательно, wgetвнутренне читает его как, /var/www/html/home/username/data.csvи это правда, что такого файла нет.

Поэтому мой вопрос: wgetпринимает ли путь?

Как мне скачать файл за пределами каталога моего сайта?

Шакти Сингх
источник
просто глядя на jist, как насчет -H, чтобы охватить хозяев
barlop
о, я понимаю, что вы спрашиваете, нет, вы не можете, очевидно, Это просто не в сети или FTP-сервер. хотя вы могли бы начать еще один в этом каталоге. но ssh позволит вам скопировать любой файл из терминала.
Барлоп

Ответы:

1

Как мне скачать файл за пределами каталога моего сайта?

Вы не можете попросить веб-сервер предоставить его по соображениям безопасности.

Попробуйте вместо этого использовать ftp

wget ftp://username:password@www.example.com/data.csv

Если служба FTP недоступна, настройте ее или используйте sftpвместо нее для большей безопасности.

RedGrittyBrick
источник
Служба FTP не настроена, и я попытался с SFTP, wget sftp://username:password@www.example.com/data.csvно он говоритUnsupported Scheme
Shakti singh
wget не поддерживает sftp, есть отдельная клиентская программа. Для Windows вы можете использовать WinSCP или Putty sftp. Однако сначала вы должны убедиться, что на сервере запущены службы sshd и sftpd, и вам может потребоваться настроить некоторые учетные данные для аутентификации в зависимости от того, как настроен сервер. Как вы загружаете файлы на веб-сервер?
RedGrittyBrick
0

Ваш веб-сервер обслуживает только файлы с /var/www/html/пути и не знает о существовании /home/username/. Вам нужно запустить какой-то экземпляр веб-сервера внутри, /home/username/прежде чем вы сможете wgetфайлы из этого каталога.

Вот несколько способов заставить это работать.


  • Запустите временный экземпляр HTTP-сервера, используя Python, в своем домашнем каталоге.

$ cd /home/username

$ python -m SimpleHTTPServer( python -m http.serverна Python 3.x)

$ wget http://example.com:8000/data.csv


  • Создайте символическую ссылку на /home/username/from /var/www/html/, хотя это не рекомендуется, поскольку она предоставляет весь ваш домашний каталог. Или создайте символическую ссылку на data.csvсебя.

$ cd /var/www/html/

$ ln -s /home/username/data.csv data.csv( ln -s /home/username homedirсимволическая ссылка на каталог)

$ wget http://www.example.com/data.csv

Убедитесь, что вы включили использование символических ссылок (глобально или только для этого Справочника). Options FollowSymLinks Смотрите здесь для получения дополнительной документации относительно символических ссылок.


Jin
источник
хорошо, попробую
Шакти Сингх
Спасибо, я не пробовал таким образом, но я думаю, что это должно работать. Я сделал это с WinScp.
Шакти Сингх