Программа для скачивания файлов ftp сервера. Скачивать и закачивать файлы по FTP используя консоль

Многие из нас порой пользуются протоколом FTP, например, я даже на своём компьютере. Скачать файл по этом протоколу не так сложно через браузер, но вот папку вы не скачаете таким образом.

Можно конечно всё вытягивать по одному файлу, но это не выход, файлов может быть очень много. Но на самом деле это не проблема и тут есть несколько вариантов, ?

1. Как с FTP скачать папку при помощи FileZilla?

Первый и самый простой способ - это установить ftp клиент, например, программу Filezilla. Установить её можно командой в терминале:

Sudo apt-get install filezilla

Работать с этой программой совсем просто, поэтому не буду долго объяснять. Скажу только, что нужно ввести адрес ftp сервера в поле "хост" и нажать "enter"

2. Как с FTP скачать папку при помощи Nautilus?

Но, например, я столкнулся с проблемой, что некоторые ftp сервера в нашей локальной сети совсем не хотят соединяться с filezilla. Поэтому бывает нужно пойти другим путём: зайти на ftp через файловый менеджер nautilus. Делается это просто: открываете любое окно наутилуса и нажимаете Ctrl + L После этого в нём появляется адресная строка. Вводим туда адрес ресурса ftp: ftp://172.22.16.133 (вы вводите естественно ваш адрес) В окне должны появиться папки и файлы ресурса. Но тут сразу возникает проблема: nautilus совсем отказывается понимать русскую кодировку в cp1251, появляются крякозябры.

Как открыть папку ftp в nautilus, чтобы кодировка была нормальной, то есть uft8? Думаю просто открыть таким способом у нас не получиться, так как в nautilus нет таких настроек. (Может и есть какие-нибудь хитрые способы, но я о них не слышал). Но есть другой способ решить эту проблему: можно просто подмонтировать ресурс ftp к какой-нибудь нашей папке. Для этого нам понадобится небольшая консольная програмулька - curlftpfs. Устанавливаем:

Sudo apt-get install curlftpfs

После этого создаём где-нибудь папку, например с названием FTP.

Что бы воспользоваться программай нужно в консоли ввести команду:

Fusermount -u /home/user/FTP

Но в данном случае вы опять получите крякозябры. Поэтому нужно ввести специальный параметр, которые будет на лету перекодировать кракозябры в удобоваримый вид:

curlftpfs 172.22.16.133/audio /home/user/FTP -o codepage=windows-1251[,iocharset=utf8]

Опа! Получилось!

Параметр -o codepage=windows-1251[,iocharset=utf8] как раз и даёт возможность перекодировать виндозную кодировку в нашу utf8.

Теперь вы можете скачать папку с ftp без особых проблем, или просто полазить на сервере, ища то, что вам нужно.

FTP (File Transfer Protocol) является наиболее популярным протоколом для передачи файлов (скачиваать и загружать) из одной системы в другую систему. Это обеспечивает быстрыйспособ передачи файлов. Есть много доступных приложений на Linux и Windows такие как VSFTPD, ProFTPD для Linux, FileZilla Server для windows и macOS.

Есть различные способы для подключения к FTP-серверу использую графическую среду, но системный администратор должен знать силу командной строки. И в данной теме «Скачивать и закачивать файлы по FTP используя консоль» я расскажу как можно работать с командной строкой для передачи/получения данных.

1. Подключение к FTP-серверу с помощью командной строки

Для подключения к любому серверу с помошью командной строки служит терминал.

$ ftp ftp.сайт

2. Загрузить файл на FTP-сервер

Чтобы загрузить файл на сервер используют FTP put. Во-первых нужно перейти в нужную папку на FTP сервере для загрузки файла и использовать следующую команду.

Ftp> cd uploads ftp> put /home/captain/my_file.txt

3. Скачать один файл из FTP-сервер

Чтобы скачать файл из FTP-сервера, мы используем команду get. Используя эту команду мы можем загрузить один файл. Чтобы скачать какой-либо файл с сервера FTP, сперва войдите на FTP-сервер, потом перейдите в каталог и использования следующую команду, чтобы скачать любой файл:

Ftp> get my_file.txt

4. Загрузить несколько файлов на FTP-сервер

Чтобы загрузить несколько файлов на FTP-сервере мы используем MPUT команду. Мы можем указать символ шаблона для загрузки нескольких файлов на сервер одновременно. Во-первых перейдите к нужной папке на FTP сервере для загрузки файла и используйте следующую команду. Он будет загрузить все файлы с расширением.txt в каталог /home/captain для закачанных файлов на FTP-сервере.

Ftp> cd uploads ftp> lcd /home/captain/ ftp> put *.txt

5. Скачать несколько файлов с FTP-сервера

Чтобы скачать несколько файлов с FTP-сервера, мы используем MGET команду. Используя эту команду можно загружать файлы.

Ftp> mget *.txt

Команды.

!
Выйти с оболочки shell

?
Расспечатать помошь о локальной информации

append
Добавьте в файл

ascii
Установить тип передачи ASCII. Используйте это, чтобы передать текстовые файлы (HTM-файлы).

bell
Звуковой сигнал при завершении команды.

binary
Установите двоичный тип передачи. Используйте это для передачи двоичных файлов (XE-файлов и графики).

bye

cd
Изменить удаленный рабочий каталог (использование «..», чтобы перейти к родителю).

close
Завершить сеанс FTP.

delete
Удалить удаленный файл.

debug
Переключить режим отладки.

dir
Перечислите (показать) содержимое удаленного каталога.

disconnect
Завершить сеанс FTP.

get
Получить файл (смотрите также mget).

glob
Переключить расширение метасимвол из локального имени файлов.

hash
Переключить печать ‘#’ для каждого переданного буфера.

help
Показать список команд.

lcd
Изменить локальный рабочий каталог.

literal
Отправить произвольную команду FTP.

ls
Показать содержимое удаленного каталога.

mdelete
Удаление нескольких файлов.

mdir

mget
Получить несколько файлов (смотрите также get)

mkdir
Создайте каталог на удаленной машине.

mls
Список содержимого нескольких удаленных каталогов.

mput
Отправить несколько файлов (смотрите также put).

open
Подключение к удаленному FTP.

prompt
Грубое интерактивное приглашение на нескольких команд (это переключение)

put
Отправить один файл (смотрите также mput).

pwd
Распечатать рабочую папку (где ты находишся сейчас) на удаленной машине.

quit
Завершить сеанс подключения и работу.

quote
Отправить произвольную команду FTP. Вы можете просмотреть список raw команд FTP на www.nsftools.com/tips/RawFTP.htm

recv
Receive file

remotehelp
Get help from remote server

rename
Получить файл.

rmdir
Удалить каталог на удаленной машине.

send
Отправить один файл.

status
Показать текущее состояние.

trace
Переключить трассировку пакетов.

type
Установить тип файла передачи

user
Отправить новую информацию пользователя.

verbose
Переключить подробный режим.

Тема «Скачивать и закачивать файлы по FTP используя консоль» завершена.

Как бы активно ни продвигались облачные технологии, хранение файлов, традиционно, зачастую проще и дешевле обходится на FTP-серверах. По сути, FTP-клиенты - такая же необходимая категория программного обеспечения, как и обычные файловые менеджеры. Конечно, здесь не придется говорить о «новичках»: была и есть устоявшаяся выборка программ как среди платных, так и среди бесплатных решений.

В данном обзоре пойдет речь о бесплатных FTP-клиентах, не столько известных, сколько «разношерстных». Наибольшее внимание будет уделено таким аспектам, как поддержка протоколов, безопасность, интерфейс, а также дополнительные функции (синхронизация, кэширование, поиск и прочие).

FileZilla

FileZilla - кроссплатформенный мультиязычный клиент, простой в использовании, поддерживающий такие базовые протоколы, как FTP, SFTP, FTPS и др., располагающий к себе удобным интерфейсом с возможностью перетаскивания, поддержкой вкладок, сравнением директорий, синхронизацией и удаленным поиском. Программа регулярно обновляется, что говорит об активном статусе ее разработки.

Графическая оболочка действительно удобна - она не перегружена, как это обычно бывает в программах подобного рода - множеством панелей. Сверху и снизу окна - Журнал сообщений и Окно задания, в основной части расположен двухколоночный файловый менеджер. Если менеджер покажется неудобным в навигации, можно включить древовидный список для локального/удаленного списков файлов. Поддерживаются вкладки. Такой интерфейс можно назвать почти классическим для GUI FTP-клиентов.

Для быстрого подключения к хосту можно воспользоваться Панелью быстрого соединения, также здесь указывается протокол передачи, например, sftp://hostname или ftps://hostname. Но более привычно составить список нужных источников для подключения в Менеджере сайтов. В настройках, опять же, можно поменять протокол (FTP/SFTP), ввести учетные данные, назначить локальный и удаленный каталоги, открывающиеся при подключении, сменить тип передачи файлов (более широко опции предоставлены в общих настройках программы). В Менеджере сайтов, равно как и в главном окне, в процессе навигации можно создавать закладки.

В FileZilla достаточно гибкое управление передачей данных. Во-первых, имеется в виду наглядный процесс выполнения заданий, с возможностью постановки на паузу (для файлов, не превышающих лимит 4 Гб). Во-вторых, в клиенте поддерживаются синхронизированный просмотр, сравнение каталогов, фильтры, кэширование и, как уже было упомянуто, удаленный поиск - стандартные и необходимые функции при навигации.

Поддерживаются HTTP/1.1, SOCKS 5, и FTP-прокси. Для протокола FTP дополнительно доступно шифрование.

Резюме

Простой клиент, который не удовлетворит потребности профессионала, однако включает в себя все базовые возможности для работы с протоколами FTP, SFTP, FTPS.

[+] Документация на русском языке
[+] Простой и удобный интерфейс
[+] Кроссплатформенность
[−] Нет поддержки командной строки ( сервера)

FTPRush

FTPRush - некогда платный клиент, пополнивший список бесплатных относительно недавно. Из примечательных особенностей можно отметить такую функцию, как FXP - перенос файлов с одного сайта на другой «на лету», гибкую настройку интерфейса (в традициях панельного MS Office 2000-2003), SSL/TLS/SFTP-шифрование, Z-компрессию при передаче.

Внешний вид настраивается гибче, чем FileZilla, достаточно заглянуть в меню «Вид» либо открыть контекстное меню любой из областей. Предусмотрено следующее: перетягивание, включение и отключение панелей, кнопок, настройка столбцов колонок.

Менеджер подключений имеет в запасе множество настроек сервера, поддерживаются SFTP (причем в соответствующем разделе обнаруживаются опции для настройки SSL), SSH, незащищенный FTP, TFTP. Можно указать временную зону, определить локальный/удаленный каталоги, добавить закладки. При наличии нескольких конфигураций удобно применять глобальные настройки, отпадает необходимость в перенастраивании нескольких конфигураций. Доступны списки исключений, извещения, приоритеты и другие дополнительные параметры. Представлен ряд опций, относящихся к соединению программы с сервером и передаче файлов. На выбор - несколько видов прокси, в том числе и SOCKS, настройка Z-компрессии. Не говоря уже о настройке горячих клавиш и действий мышью.

Планировщик доступен он через Окно задач. Не сказать, что он идеален в текущей реализации, но свои функции выполняет и вдобавок позволяет указать сценарий либо действие из списка для выполнения. Для создания сценариев используется конструктор, который доступен в меню «Инструменты». Также в этом разделе можно ознакомиться со списком FTP-команд. Удаленный поиск можно найти в разделе меню «FTP».

Пожалуй, единственный момент, вызывающий нарекание - очень некачественный перевод на русский.

Резюме

На выходе получаем бесплатный продукт с функциями профессионального продукта.

[−] Некачественный перевод интерфейса
[+] Отличная функциональность
[+] Большое количество настроек
[+] Поддержка защищенных протоколов и методов шифрования

WinSCP

WinSCP - клиент с открытым исходным кодом, который работает с протоколами FTP, SFTP, SCP и FTPS ( , таблица сравнения протоколов), поддерживает сценарии и командную строку.

Одна из первоочередных особенностей - возможность выбора интерфейса в одном из двух вариантов - Проводник или Commander. В первом случае, результатом является имитация панели проводника (с удаленным режимом доступа) с левой боковой панелью и сопутствующей схемой горячих клавиш. Если говорить о втором типе интерфейса, то здесь, скорее, прослеживаются аналогии с Far Manager, MC, Norton Commander, при этом клавиатурные сочетания также приближены к классическим файлменеджерам.

Поддержка сессий, вкладок, синхронизация каталогов, сравнение файлов источника/приемника - имеются среди других возможностей. Многие панели настраиваемы, можно их закрепить/открепить, убрать через меню View. Однако WinSCP в наименьшей степени графический клиент в типичном понимании, здесь устройство несколько иное. Функциональность не впечатлит малоопытного пользователя ввиду того, что многие опции скрыты в командном режиме - в меню можно обнаружить выход на утилиту Putty, командную строку и другие специальные инструменты для работы с вышеуказанными протоколами.

Заявленная поддержка скриптов окажется полезной при автоматизации передачи данных или планирования заданий (что заинтересует опытных пользователей). Достаточно подробная инструкция по планированию заданий в Windows через командную строку в руководстве.

Что касается FTP, функциональность достаточно заурядная, и, более того, нет функции FXP, которая в FTPRush, например, указана чуть ли не основной. Впрочем, FXP поддерживается далеко не на каждом сервере.

На странице с переводами можно найти частичную русификацию (выполненную на 80%).

Резюме

Клиент предназначен для аудитории опытных пользователей, которые, прежде всего, работают с протоколами SFTP, SCP и FTPS с использованием терминала.

[+] Управление через консоль
[+] Гибкая настройка SFTP, SCP и FTPS
[+] Неплохие возможности по автоматизации

Cyberduck - не совсем типичный продукт в нише FTP-клиентов, поскольку в наибольшей степени он позиционируется как «файловый браузер» для платформ Windows и Mac OS. Поддерживаются протоколы FTP, SFTP, WebDAV, Cloud Files, Google Drive, Google Storage и Amazon S3.

При запуске программа предлагает импортировать хосты из FileZilla, и указанные адреса будут помещены в закладки. В программе используется однопанельный режим, для десктоп-клиента в данном случае вовсе не оптимальный и вызывающий лишь неудобства. Для закачки файлов необходимо открывать отдельное окно, аналогично - для просмотра очереди заданий. Чтобы изменить права доступа, нужно переходить во вкладку «Права доступа» раздела «Инфо». Все стандартные операции, касающиеся работы с FTP, собраны в меню «Действие». В программе можно заметить окно поиска, но, как оказалось, это некий фильтр по названиям, но никак не поиск по файлам.

Если удобством FTP-режима программа не может отметиться, то, возможно, кого-то привлечет некоторыми дополнительным функциями, среди которых поддержка хранилищ облачных сервисов, таких как Диск Google или Amazon S3. Тонких настроек для интеграции с сервисами не нашлось. Для экспорта документов из Google Docs можно выбрать формат файлов, в случае с Amazon - настройки шифрования и др. Относительно функциональности, опять же, ничего в защиту Cyberduck сказать нельзя: так, простая операция вроде назначения прав доступа в Google Диск куда более интуитивна в оригинальном интерфейсе. Использование неудобной альтернативы здесь представляется сомнительным.

Вообще, в связи с очень простым интерфейсом Cyberduck нельзя назвать оптимальным клиентом для работы с вышеназванными сервисами. Однако, как файловый менеджер для просмотра документов он вполне сгодится. Можно лишь возлагать надежды на то, что разработчики «подтянут» функциональность в одном из направлений - либо работа с FTP, либо поддержка облачных сервисов.

Резюме

Несмотря на поддержку FTP, SFTP и других протоколов, Cyberduck сгодится лишь для закачки или скачивания файлов, просмотра документов на сервисе Документы Google и других простых операций. То есть, предусмотрена самая базовая работа с заявленными протоколами и сервисами.

[+] Унифицированный интерфейс
[−] Малое количество настроек
[−] Неудобный файловый менеджер
[−] слабая поддержка облачных сервисов

CoreFTP LE

Данный файловый менеджер примечателен поддержкой протоколов SFTP, SSL, TLS, FTPS, IDN, режима командной строки, FXP, прокси нескольких типов. LE - это бесплатная облегченная версия клиента, PRO содержит множество дополнительных функций, таких как шифрование файлов, zip-архивирование, синхронизация и .

В оболочке CoreFTP LE чувствуется «старая школа». И, хотя расположение панелей достаточно интуитивно, для комфортной работы нужно все перенастраивать. Можно воспользоваться командой Reset View для смены режима отображения: например, сместить логи вверх, убрать лишние панели и прочее.

Если говорить о возможностях при работе с FTP, в стандартные функции CoreFTP входят создание заданий для нескольких сайтов, рекурсивные операции с файлами (закачка, скачивание и удаление). Многопоточность в LE-версии недоступна, тем не менее, немалое количество опций открыто в разделе «Connections». В разделе Transfers можно включить компрессию - в LE-версии, правда, не все опции доступны.

Сайт-менеджер очень гибок в настройке, радует количество протоколов и предусмотренных опции для SSH,SSL/TSL. Настройки безопасности можно найти в «Advanced File Settings». Не забыты прокси, в списке доступны FTP Proxy/HTTP 1.1/SOCKS. Для продвинутых пользователей будет интересен раздел «Script/Cmds», хотя, судя по всему, командный режим здесь представлен более скромно, чем в WinSCP, и терминал отсутствует.

Резюме

FTP-клиент с традиционным интерфейсом и добротной функциональностью для бесплатной версии, с большим количеством настроек, касающихся безопасности, передачи данных, соединения.

[−] Нет планировщика
[−] Устаревший интерфейс
[+] Хорошая функциональность
[+] Продвинутые настройки SSH,SSL/TSL и прокси

BitKinex

Перечень особенностей, указанный на сайте BitKinex, сводится к удобствам пользовательской среды, однако, если обратить внимание на другие аспекты, в сухом остатке будет поддержка протоколов FTP, FXP, FTPS, SFTP, HTTP, HTPS, WebDAV, функций FXP и Indirect Transfers (FTP->SFTP, WebDAV->FTPS, HTTP->FTP и т. п.). Другие возможности приведены на странице . Из них следует, что BitKinex можно также использовать для создания зеркал, в качестве менеджера загрузок - то есть, весьма универсальный клиент.

Для создания подключения предназначен стартовый мастер настройки «Quick Connect», который, впрочем, можно пропустить, перейдя к окну «Control Window». Здесь собраны источники данных для всевозможных протоколов, каждый из которых поддается тщательной настройке. Все источники группируется по типу протокола.

Операции с файлами на сервере производятся в другом окне - «Browse Window», которое открывается при подключении к источнику. В данном окне представлен стандартный двухколоночный менеджер. В основной области локальный и удаленный источники, слева - список хостов, внизу - список задач и лог.

Возможна интеграция с Проводником Windows, поддерживается перетаскивание между окнами, и, что наиболее интересно, drag & drop данных между протоколами. Доступно множество операций с файлами и папками, такие как сравнение, блокирование, смена прав доступа CHMOD и прочие операции. Программа поддерживает режим командной строки. Из дополнительных функций стоит отметить синхронизацию и зеркалирование.

Резюме

Универсальный менеджер для широкого спектра протоколов, со своей интересной идеологией, гибкими настройками. Заинтересует пользователей, которые работают с множеством источников, опытных вебмастеров и системных администраторов.

[+] Отличная функциональность
[+] Удобная группировка источников
[−] Недостаточно интуитивный интерфейс

Компания CoffeeCup известна своими простыми, «казуальными» программами, клиент Free FTP не стал исключением. В описании возможностей часто употребляется слово «easy». Тем не менее, поддерживается не только протокол FTP, но и SFTP, FTPS, что позволило включить этот клиент в обзор.

Для создания подключения нужно перейти в «Manage Servers», где уже обосновался аккаунт S-Drive. Программа достаточно навязчиво «рекомендует» подключить данный сервис, удалить из менеджера сайтов его нельзя.

Очевидно то, что клиент CoffeeCup Free FTP нацелен на работу со статическими сайтами, так как здесь присутствует встроенный редактор с автодополнением, сворачиванием кода, подсветкой и прочими удобствами. Увы, доступен только в платной версии и при этом занимает половину рабочей области программы и отдельный раздел настроек. Его легко убрать из виду, переключившись в режим «FTP View».

Основных опций немного, особенно по части защищенных протоколов. В принципе, логично, что начинающий пользователь скорее предпочтен небезопасный и более знакомый FTP. В настройках также присутствуют параметры прокси, хотя выбрать тип соединения нельзя, возможно лишь добавить сервер(-ы) в список. Из примечательных особенностей можно отметить встроенный ZIP-архиватор. Достаточно странно, также здесь же нашлось место клиенту PuTTY - «запаска» на случай использования CoffeeCup Free FTP опытными пользователями?

Резюме

Клиент от CoffeeCup чрезвычайно прост в использовании, поскольку функциональность не позволяет запутаться. Пожалуй, будет полезен начинающим веб-мастерам, которым нужно редактировать HTML-файлы на сервере, либо в период знакомства с веб-технологиями.

[+] Клиент легко освоить
[−] Навязчивость S-Drive
[−] Отсутствие поиска, синхронизации и сравнения каталогов
[−] Встроенный текстовый редактор

Сводная таблица


FileZilla FTPRush WinSCP CoreFTP LE BitKinex
Разработчик Tim Kosse FTPRush WinSCP CoreFTP LE BitKinex
Лицензия Freeware (GPL) Freeware Freeware (GPL) Freeware (GPL) Freeware Freeware Freeware
Платформы Windows, Linux, Mac OSX Windows 2000+ Windows 2000+ Windows, Mac OSX Windows Windows XP+ Windows XP+
Протоколы FTP, SFTP, FTPS FTP, SFTP, TFTP+ FTP, SFTP, SCP, FTPS FTP, SFTP, WebDAV, Cloud Files, Google Drive, Google Storage, Amazon S3 SFTP, SSL, TLS, FTPS, IDN FTP, FTPS, SFTP, HTTP, HTPS, WebDAV+ FTP, SFTP, FTPS
Консоль + + + + +
Прокси FTP, HTTP, SOCKS FTP, HTTP, SOCKS+ FTP, HTTP, SOCKS, Telnet+ системный FTP, HTTP, SOCKS FTP, HTTP, SOCKS +
Удаленный поиск + + + + +
Синхронизация + + + + + +
Сравнение содержимого каталогов + + + + +
FTP (File Transfer Protocol) - сетевой протокол, предназначен для передачи файлов в компьютерных сетях. Протокол FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер.

Информация для подключения

Управление FTP-аккаунтами производится в разделе FTP и SSH . Для перехода к настройкам FTP-пользователя необходимо нажать на его название.

На странице Свойства указаны основные параметры для подключения к серверу по FTP.

  • Адрес сервера (хост): ftp.login.nichost.ru, где login - уникальное имя услуги хостинга (указано в верхней правой части панели управления).
  • Имя FTP-пользователя (логин): login_ftp .
  • Для смены пароля FTP-пользователя нажмите кнопку Сбросить пароль . Новый пароль будет отображен в всплывающем окне. Для отправки пароля на ваш контактный адрес электронной почты, установите галочку Выслать пароль на почту .

Загрузка файлов на сервер

После создания сайта в разделе Сайты панели управления на хостинге появится каталог с его именем. Загружать файлы необходимо в корневой каталог сайта ваш_домен/docs . Сделать это можно при помощи одной из указанных ниже программ или панели управления хостингом.

Настройка программ

Информация о настройке популярных FTP-клиентов (FileZilla, FAR, Total Commander, iWeb и др.) размещена в статье .

Структура каталогов хостинга

При подключении к хостингу по FTP вы попадаете в домашний каталог. Он содержит следующие файлы и каталоги:

  • каталоги с именами сайтов (на примере login.nichost.ru ) - появляются при создании сайта в панели управления,
  • etc - содержит конфигурационные файлы хостинга,
  • tmp - для временных файлов, в него загружаются резервные копии,

Каталог сайта, который появляется при его создании в панели управления, имеет следующую структуру:

  • ваш_домен/docs - корневой каталог сайта. В него следует загружать файлы сайта (html-документы, php-скрипты, картинки). Полный путь к корневому каталогу сайта на сервере: /home/идентификатор/ваш_домен/docs;
  • ваш_домен/cgi - для cgi-скриптов, его содержимое доступно по адресу http://ваш_домен /cgi-bin/;
  • ваш_домен/php - для подключаемых php-модулей, путь к нему задан параметром include_path ;
  • ваш_домен/errordocs - содержит стандартные страницы ошибок;

Будьте внимательны при работе с файлами. Не удаляйте служебные файлы и каталоги - это может нарушить работу хостинга.

FTP-пользователю можно предоставить доступ только к определенному каталогу хостинга, например, к файлам одного сайта. Для этого:

  • авторизуйтесь в панели управления хостингом, используя номер вашего договора и пароль;
  • перейдите в раздел FTP и SSH , где вы увидите имена пользователей FTP;
  • выберите необходимого пользователя, отредактируйте поле Доступ , нажмите ссылку Изменить и сохраните изменения.

Например, чтобы FTP-пользователь имел доступ к файлам сайта example.com, в поле Доступ введите /home/login /example.com/docs , где login - идентификатор услуги хостинга, docs - корневой каталог сайта.

Узнать полный путь для каталога вы можете с помощью раздела Файловый менеджер панели управления хостингом. Путь отображается в верхней части страницы.

Ограничения при работе по FTP

  • Не более 10 одновременных соединений с одного IP-адреса и не более 5 одновременных подключений от одного FTP-пользователя.
  • Подключение возможно только с использованием FTP-пользователей, созданных в панели управления. Анонимный доступ не предоставляется.

Об использовании SFTP

SFTP (SSH File Transfer Protocol) - протокол, позволяющий передавать файлы с использованием шифрования. Соединение по SFTP является более безопасным и обладает дополнительной функциональностью (работа с символическими ссылками).

Диагностики неполадок и устранение ошибок при работе с FTP

При возникновении ошибок подключения по FTP рекомендуем выполнить следующие действия.

1. Получите актуальные параметры подключения к хостингу

В первую очередь при ошибках подключения просим вас убедиться, не были ли изменены реквизиты FTP-подключения. Сделать это вы можете, проверив почту, указанную в качестве контактной по договору на предмет соответствующих оповещений. Рекомендуем вам изменить пароль для доступа по FTP и повторить подключение.

2. Проверьте настройки FTP-клиента и операционной системы

  • Убедитесь, что ваш FTP-клиент настроен согласно нашим инструкциям. Мы рекомендуем использовать для подключения FTP-клиент и пассивный режим работы.
  • Проверьте настройки антивирусного ПО, брандмауэра, установленных на вашем компьютере, и сетевого оборудования (например, роутера). FTP-клиенту должен быть разрешен доступ к сети.

3. Проверьте сетевое соединение

При возникновении технических неполадок на канале связи от вашего интернет-провайдера до сервера хостинга могут возникать ошибки подключения или наблюдаться низкая скорость передачи данных. Необходимо выполнить диагностику с .

В случае, если неполадки при подключении сохраняются, сообщите об этом в . В письме укажите текст сообщения об ошибке, её скриншот, результат проверки сетевого соединения с помощью WinMTR и время возникновения неполадок.

Недавно, для одного интернет-магазина на базе joomla-virtuemart , сделал скрипт, позволяющий на основе информации о товарах в базе данных генерировать каталоги товаров в виде XML документа с соблюдением формата Yandex Market Language (YML-формат каталога). Скрипт генерирует такие каталоги и сохраняет в файловой системе сайта. Но, клиент очень скоро пожаловался, что неудобно скачивать каталоги с сайта. И правда, при прямом обращении к каталогу, он просто открывается в браузере и чтобы его скачать нужно дополнительно нажать правой кнопкой мыши и кликнуть «сохранить как…».

Действительно, для рядового пользователя интернета, это может быть довольно не удобно, и к тому же нужно еще додуматься, что можно кликнуть мышкой и скачать. Не для всех это кажется очевидным. Поэтому я решил написать коротенький скриптик, который по запросу позволял бы скачать текстовый файл с сервера, без открытия его в браузере. В этой статье я предлагаю листинг его кода с комментариями.

, $_GET [ "file" ] ) and file_exists ($_GET [ "file" ] ) ) { $content = file_get_contents ($_GET [ "file" ] ) ; header ("Content-Type: " . $ctype . "; charset=utf-8" ) ; header (. $_GET [ "file" ] ) ; ob_end_clean () ; ob_start () ; echo $content ; ob_end_flush () ; exit () ; } else { echo "Файл не найден." ; exit () ; }

Принцип работы этого скрипта довольно прост. Допустим, скрипт записан в php файл с именем «download.php» и помещен в папку «files». Формируется ссылка на этот скрипт, в которой передается GET параметр file и в этом параметре передается имя требуемого текстового документа. Например, мы хотим скачать текстовый файл с именем test.xml или test.txt:

Http://www.domen-saita.ru/files/download.php?file=test.xml или http://www.domen-saita.ru/files/download.php?file=test.txt

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

Безопасность

Однако, в такой организации скачивания документов с сервера таится одна серьезная опасность. Если я введу в адресной строке браузера такой запрос:

Http://www.domen-saita.ru/files/download.php?file=../configuration.php

в таком случае начнется то, чего ни в коем случае допускать нельзя! Начнется скачивание файла конфигурации Вашего сайта (в данном случае имеется ввиду файл конфигурации joomla, однако это в равной степени касается всех CMS). А это автоматически означает полный крах, потому что в таком случае в руки пользователю попадает вся жизненно важная информация связанная с работоспособностью сайта. И вопрос взлома – это уже вопрос ближайшего времени. Поэтому, чтобы предотвратить такую возможность, мы должны позаботиться о безопасности. Именно для этого в первой строке скрипта полученный запрос проходит проверку регулярным выражением.

preg_match ("/^Catalog{0,50}\.xml$/" , $_GET [ "file" ] )

В данном случае, регулярное выражение допускает возможность скачивания только документа, имя которого может быть следующим:

Catalog.xml Catalog_krovati.xml Catalog_shkafy_i_tumby.xml

и тому подобное… То есть имя файла, в данном случае, должно начинаться с «Catalog» и заканчиваться на «.xml», с учетом регистра - любые другие вариации будут отклонены и на экран будет выведено сообщение «файл не найден». Хотя, физически он может находиться на сервере, но его скачивать не разрешено.

Причем, так же в этом регулярном выражении нет возможностьи пропустить символ «/» и «.» (кроме точки в окончании имени файла). Это предотвращает возможность в качестве имени файла указать путь до файла в другой папке, аналогично примеру с «configuration.php», или например:

Http://www.domen-saita.ru/files/download.php?file=../drugaya-papka/test.xml

То есть, данный скрипт позволит скачивать xml файлы только из той папки, в которой находится сам скрипт.

Однако, Вы можете изменить структуру регулярного выражения так, чтобы допустить скачивание любых «txt», «xml», «pdf», а так же любых графических файлов типа «png», «gif» и прочее… В общем, тут Вы можете полностью сами решать какие файлы можно скачивать с помощью этого скрипта. Главное ни в коем случае не допускайте через этот скрипт скачивание системных файлов вашего сайта, которые могут нести какие-то важные настройки, логины и пароли. Если с помощью этого скрипта захотите организовать скачивание из разных директорий файловой системы, то подумайте о том чтобы не было возможности скачивать из папки типа «administrator» или «admin», или из папок, которые содержат файлы расширений CMS, в том числе их файлы конфигурации.

На этом, собственно, вопрос безопасности завершается и дальше идет просто техническая работа по подготовке к скачиванию, если проверка пройдена успешно и файл с таким именем существует.

Во второй строке скрипта запрашивается содержимое целевого файла и помещается в переменную.

Далее передаются заголовки, в первом заголовке определяется тип данных и кодировка, а во втором заголовке передается требование вывести диалог сохранения документа на компьютер до вывода его в окне браузера.

Далее предварительно опустошается (на всякий случай) и разрушается буфер. Затем запускается буферизация и все что выводится из переменной $content помещается в буфер, после чего выводится оттуда для скачивания.

Алтернативный код

Здесь представлен код того же скрипта, но чтение и дальнейшее скачивание файла с сервера происходит через функцию readfile(), что согласно документации php точно не должно вызвать проблем с переполнением памяти. На всякий случай, перед вызовом этой функции происходит очищение буфера с помощью ob_clean().

if (isset ($_GET [ "file" ] ) and preg_match ("/^Catalog{0,50}\.xml$/" , $_GET [ "file" ] ) and file_exists ($_GET [ "file" ] ) ) { header ("Content-Type: " . $ctype . "; charset=utf-8" ) ; header ("Content-Disposition: attachment; filename="

Однако, я не хочу сказать что скрипт указанный в первой части статьи хуже, просто для него я не могу сказать как он поведет себя при скачивании файлов большого размера. В случае же второго варианта, со слов самих разработчиков php – таких проблем точно не возникнет.

Дополнительное улучшение

Если Вы надумаете использовать скрипт для скачивания файлов разных форматов, то будет полезно при каждом скачивании в заголовках правильно указывать тип передаваемых данных, т.н. MIME-типы (подробнее можно прочитать ). Для этого нужно добавить анализ имени файла на предмет его расширения, тогда скрипт будет примерно таков:

if (isset ($_GET [ "file" ] ) and preg_match ("/^{0,50}\.(xml|txt|pdf|png|gif|jpg|jpeg|exe|doc|xls|ppt|zip|)$/" , $_GET [ "file" ] ) and file_exists ($_GET [ "file" ] ) ) { $extension = strtolower (substr (strrchr ($_GET [ "file" ] , "." ) , 1 ) ) ; switch ($extension ) { case "txt" : $ctype = "text/plain" ; break ; case "pdf" : $ctype = "application/pdf" ; break ; case "exe" : $ctype = "application/octet-stream" ; break ; case "zip" : $ctype = "application/zip" ; break ; case "doc" : $ctype = "application/msword" ; break ; case "xls" : $ctype = "application/vnd.ms-excel" ; break ; case "ppt" : $ctype = "application/vnd.ms-powerpoint" ; break ; case "gif" : $ctype = "image/gif" ; break ; case "png" : $ctype = "image/png" ; break ; case "jpeg" : $ctype = "image/jpg" ; break ; case "jpg" : $ctype = "image/jpg" ; break ; default : $ctype = "application/force-download" ; } header ("Content-Type: " . $ctype . "; charset=utf-8" ) ; header ("Content-Disposition: attachment; filename=" . $_GET [ "file" ] ) ; ob_clean () ; readfile ($_GET [ "file" ] ) ; exit () ; } else { echo "Файл не найден." ; exit () ; }

Кроме того, при желании, можно скрипт доработать таким образом чтобы ограничить количество скачиваний конкретного файла для одного пользователя. При этом прямой доступ к файлам перекрыть настройками сервера (например, через.htaccess на apache).