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

Мой сайт работает на сервере 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 путь?

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

2 ответа2

1

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

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

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

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

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

0

Ваш веб-сервер обслуживает только файлы из /var/www/html/ path и не знает о существовании /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 См. Здесь для получения дополнительной документации относительно символических ссылок.


Всё ещё ищете ответ? Посмотрите другие вопросы с метками .