ftp

Связь с FTP-сервером, чтобы получить доступ к его файлам

Описание

Соединитесь с FTP-сервером путем вызова ftp функция, которая создает объект связи FTP. Затем используйте объект связи FTP загрузить и загрузить файлы. Также можно создать, удалить и перейти к другим папкам на сервере. Чтобы закрыть связь, используйте close функция.

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

Создание

Описание

пример

ftpobj = ftp(host) открывает связь с FTP-сервером host и возвращает объект связи FTP. Можно только использовать этот синтаксис с хостами, которые поддерживают анонимные (неаутентифицируемые) связи.

ftpobj = ftp(host,username) получает доступ к учетной записи FTP с заданным именем пользователя. Можно только использовать этот синтаксис с хостами, которые поддерживают анонимные (неаутентифицируемые) связи.

ftpobj = ftp(host,username,password) получает доступ к учетной записи FTP с заданным именем пользователя и паролем.

ftpobj = ftp(host,username,password,Name,Value) задает дополнительные входные параметры с помощью одних или нескольких аргументов name-value. Например, задайте "System"Windows соединяться с FTP-сервером, который запускает Windows® операционная система, или задают значение "LocalDataConnectionMethod" изменить режим связи от пассивного элемента до активного режима.

Входные параметры

развернуть все

Имя узла FTP-сервера в виде строкового скаляра или вектора символов.

Номер порта по умолчанию для FTP-серверов равняется 21. Чтобы задать номер альтернативного порта для связи, добавьте двоеточие (:) и номер порта к host.

Как правило, имя узла сервера запускается с ftp, как в "ftp.example.com". Однако эта практика является соглашением, не техническим требованием. Например, ftpobj = ftp("www.example.com:20") открывает анонимную связь с номером порта 20 если сервер www.example.com сконфигурирован, чтобы предоставить услугу FTP.

Пример: ftpobj = ftp("ftp.example.com")

Имя авторизованной учетной записи на FTP-сервере в виде строкового скаляра или вектора символов. Объект FTP отправляет username как простой текст.

Пароль для авторизованной учетной записи в виде строкового скаляра или вектора символов. Объект FTP отправляет password как простой текст.

Пример: ftpobj = ftp("ftp.example.com","myusername","mypassword")

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: "System","Windows"

Тип операционной системы, работающей на FTP-сервере в виде аргумента значения имени, состоящего из "System" и любой "unix" или "Windows".

Объект связи FTP автоматически обнаруживает операционную систему сервера.

FTP dir функциональная сила возвращает меньше информации, если объект связи FTP не сконфигурирован для операционной системы, работающей на FTP-сервере. В таких случаях, dir может возвратить массив структур с некоторыми пустыми полями. В этом случае вызовите ftp снова и задайте правильное значение для "System" аргумент значения имени, чтобы задать правильную операционную систему.

Режим Connection в виде аргумента значения имени, состоящего из "LocalDataConnectionMethod" и любой "passive" или "active".

Существует два режима для установления связи FTP. Самые современные реализации FTP используют passive режим, но связывать с некоторыми устаревшими серверами, вы можете должны быть задать active режим.

  • "passive" — Ваша машина устанавливает оба канала. После установления канала команды ваша машина запрашивает, чтобы FTP-сервер начал слушать на порте, так, чтобы ваша машина могла соединиться с тем портом.

  • "active" — Ваша машина устанавливает канал для команд, но FTP-сервер устанавливает канал для данных. Активный режим может быть проблемой, если, например, ваша машина защищена брандмауэром и не позволяет несанкционированные запросы сеанса из внешних источников.

Локаль для чтения дат от удаленного сервера в виде аргумента значения имени, состоящего из "ServerLocale"и строковый скаляр или вектор символов.

ServerLocale значение может быть:

  • Вектор символов или строковый скаляр в форме xx_YY, где xx строчный ISO 639-1 двухбуквенный код, который задает язык и YY прописная альфа ISO 3166-1 2 кода, которые задают страну.

Эта таблица приводит некоторые общие значения для локали.

Локаль ЯзыкСтрана
"de_DE"Немецкий языкГермания
"en_GB"Английский языкСоединенное Королевство
"en_US"Английский языкСоединенные Штаты
"es_ES"Испанский языкИспания
"fr_FR"Французский языкФранция
"it_IT"Итальянский языкИталия
"ja_JP"Японский языкЯпония
"ko_KR"Корейский языкКорея
"nl_NL"Нидерландский языкНидерланды
"zh_CN"Китайский язык (упрощен)Китай

Как проанализировать команду СПИСКА FTP-сервера выход в виде аргумента значения имени, состоящего из "DirParserFcn" и указатель на функцию. Значением по умолчанию является любой @matlab.io.ftp.parseDirListingForUnix или @matlab.io.ftp.parseDirListingForWindows, В зависимости от операционной системы сервера.

Пользовательский указатель на функцию должен иметь два входных параметров:

  1. Список записей каталога в виде вектора строки.

  2. Локаль сервера в виде строкового скаляра.

Выход пользовательского указателя на функцию должен быть массивом структур размера m-1, где m является количеством элементов в папке. Поля структуры должны совпадать с полями структуры, возвращенной dir functionName isdir, bytesдата, и datenum. Для получения дополнительной информации об этих полях смотрите dir функциональная страница.

Если значение по умолчанию приводит к ошибке при ссылке на неспособность проанализировать dir выведите, задайте этот аргумент значения имени. Этот аргумент должен быть правильно задан, чтобы использовать объектные функции та ссылка dir.

Функциональная подпись

Пользовательская функция записи должна принять два входных параметра, список записей каталога, entries и локаль сервера, serverLocale:

function listing = myFormatFcn(entries,serverLocale)

Функция, взятая в качестве примера,

Соедините записи в массив ячеек, который будет введен к textscan:

function listing = myFormatFcn(entries,serverLocale)
    entries = join(entries,newline);
    out = textscan(entries,"%s%d%3c%d%s","MultipleDelimsAsOne",true);
    structSize = numel(out{1});
Предварительно выделите struct:
listing = struct("name",cell(structSize,1),"isdir",zeros(1,1), ...
        "bytes",zeros(1,1),"date",'',"datenum",zeros(1,1));
Получите отдельные части от textscan выход:
monthName = string(out{3});
    day = string(out{4});
    time = string(out{5});
    names = out{1};
    bytes = out{2};
Создайте struct, заполняющий соответствующие поля:
    for ii = 1 : structSize
        listing(ii).name = names{ii};
        listing(ii).isdir = false;
        listing(ii).bytes = bytes(ii);
        makeDate = day(ii) + "-" + monthName(ii) + " " + ...
            time(ii);
        thisDate = datetime(makeDate, "InputFormat", "dd-MMM HH:mm", ...
            "Locale", serverLocale);
        listing(ii).date = datestr(thisDate);
        listing(ii).datenum = datenum(thisDate);    
    end
end

Передайте режим для FTP-сервера в виде аргумента значения имени, состоящего из "Mode" и "binary" или "ascii". Используйте режим ASCII для текстовых файлов, таких как файлы Формата Rich Text Format (RTF) и страницы HTML. Используйте режим двоичного счета для нетекстовых файлов, таких как исполняемые файлы или архивируйте архивы.

Если вы создаете объект FTP, используйте ASCII и двоичные функции, чтобы изменить режим передачи. Вы, возможно, должны изменить режимы, чтобы передать файлы различных типов. Настройки режима передачи сохраняются до конца вашего сеанса работы с MATLAB или пока вы не изменяете их.

Функции объекта

asciiУстановите режим передачи FTP на ASCII
binaryУстановите режим передачи FTP на двоичный файл
cdИзмените или просмотрите текущую папку на SFTP или FTP-сервере
closeЗакройте связь с SFTP или FTP-сервером
deleteУдалите файл на SFTP или FTP-сервере
dirПеречислите содержание папки на SFTP или FTP-сервере
mgetЗагрузите файлы с SFTP или FTP-сервера
mkdirСделайте новую папку на SFTP или FTP-сервере
mputЗагрузите файл или папку к SFTP или FTP-серверу
renameПереименуйте файл на SFTP или FTP-сервере
rmdirУдалите папку на SFTP или FTP-сервере

Примеры

свернуть все

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

Во-первых, соедините с Национальными Центрами Экологической информации (NCEI) FTP-сервер.

ftpobj = ftp("ftp.ngdc.noaa.gov")
  FTP with properties:

                         Host: "ftp.ngdc.noaa.gov"
                     Username: "anonymous"
                         Port: 21
                 ServerLocale: "en_US"
                 DirParserFcn: @matlab.io.ftp.parseDirListingForUnix
                         Mode: "binary"
    LocalDataConnectionMethod: "passive"
       RemoteWorkingDirectory: "/"

Перечислите содержимое папки верхнего уровня на FTP-сервере.

dir(ftpobj)
 
DMSP                         Solid_Earth                  google12c4c939d7b90761.html  pub                          
INDEX.txt                    coastwatch                   index.html                   wdc                          
README.txt                   dmsp4alan                    international                                             
STP                          ftp.html                     ionosonde                                                 
Snow_Ice                     geomag                       mgg                                                       
 

Загрузите README.txt файл от FTP-сервера. mget функционируйте загружает копию на вашу текущую папку MATLAB®.

mget(ftpobj,"README.txt");

Считайте содержимое своей копии README.txt использование readlines функция.

readme = readlines("README.txt");
readme(1:4)
ans = 4×1 string
    "                 Welcome to the "
    "    NOAA/National Centers for Environmental Information (NCEI), "
    "    formerly the National Geophysical Data Center (NGDC)"
    "                    FTP area"

Перечислите содержимое подпапки с помощью dir функция.

dir(ftpobj,"STP")
 
ANOMALIES                   NOAA                        Solid_Earth                 publications                
DMSP                        SEIS                        aavso_22nov16               satellite_data              
ECLIPSE                     SGD                         aeronomy                    space-weather               
GEOMAGNETIC_DATA            SOLAR_DATA                  cdroms                      space_environment_modeling  
GOIN                        SPIDR                       goesr                       swpc_products               
GPS_GNSS                    STEP                        ionosonde                   tivoli                      
IONOSPHERE                  SWA                         log.txt                                                 
 

Превратитесь в подпапку с помощью cd функция. Выход от cd путь к текущей папке на FTP-сервере, не ваша текущая папка MATLAB.

cd(ftpobj,"STP/space-weather")
ans = 
'/STP/space-weather'

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

dir(ftpobj)
 
aurora-airglow           documentation            interplanetary-data      online-publications      solar-data               
denig-files              geomagnetic-data         ionospheric-data         satellite-data           spacecraft-environments  
 

Закройте связь с FTP-сервером. Также можно закрыть связь путем удаления объекта FTP или освобождения времени соединения.

close(ftpobj)

Сервисная любезность FTP Национальных Центров Экологической информации (NCEI). Смотрите Политику конфиденциальности NCEI, Правовую оговорку и Авторское право на условия предоставления услуг NCEI.

Соедините с Национальными Центрами Экологической информации (NCEI) FTP-сервер. Задайте локаль сервера как Соединенное Королевство. Задайте LIST FTP-сервера команда выход, который будет проанализирован относительно Windows с помощью аргумента "DirParserFcn" значения имени.

ftpobj = ftp("ftp.ngdc.noaa.gov","ServerLocale","en_GB","DirParserFcn",@matlab.io.ftp.parseDirListingForWindows)
  FTP with properties:

                         Host: "ftp.ngdc.noaa.gov"
                     Username: "anonymous"
                         Port: 21
                 ServerLocale: "en_GB"
                 DirParserFcn: @matlab.io.ftp.parseDirListingForWindows
                         Mode: "binary"
    LocalDataConnectionMethod: "passive"
       RemoteWorkingDirectory: "/"

Сервисная любезность FTP Национальных Центров Экологической информации (NCEI). Смотрите Политику конфиденциальности NCEI, Правовую оговорку и Авторское право на условия предоставления услуг NCEI.

Советы

  • Объект FTP не поддерживает настройки прокси-сервера.

  • Передайте ~ символ к cd функция, чтобы перейти к папке входа в систему.

Представлено до R2006a