ftp

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

Описание

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

Примечание

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

Создание

Синтаксис

ftpobj = ftp(host)
ftpobj = ftp(host,username,password)
ftpobj = ftp(host,username,password,Name,Value)

Описание

пример

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

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

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

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

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

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

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

Как правило, имя сервера запускается с 'ftp', как в 'ftp.example.com'. Однако эта практика является соглашением, не техническим требованием. Если имя FTP-сервера запускается с различного префикса, то вы просто задаете host как то имя. Не добавляйте 'ftp://' к имени, чтобы задать протокол FTP.

Пример: ftpobj = ftp('ftp.example.com') открывает анонимную связь с ftp.example.com.

Пример: ftpobj = ftp('www.example.com') открывает связь, если сервер www.example.com сконфигурирован, чтобы предоставить услугу FTP.

Пример: ftpobj = ftp('ftp.example.com:34') открывает связь с помощью номера порта 34.

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

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

Пример: ftpobj = ftp('ftp.example.com','nlee','mypassword') открывает связь для пользователя nlee с помощью пароля mypassword.

Аргументы в виде пар имя-значение

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

Пример: ftpobj = ftp('ftp.example.com','nlee','mypassword','System','WINDOWS') открывает связь с FTP-сервером, который запускает операционную систему на базе Windows.

Тип операционной системы, работающей на FTP-сервере, заданном как пара, разделенная запятой, состоящая из 'System' и или 'UNIX' или 'WINDOWS'.

Режим Connection, заданный как пара, разделенная запятой, состоящая из 'LocalDataConnectionMethod' и или 'passive' или 'active'.

Существует два режима для установления связи FTP.

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

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

Режимом по умолчанию является 'passive', потому что самые современные реализации FTP используют пассивный режим. Но соединяться с некоторыми устаревшими серверами, вы можете должны быть задать активный режим.

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

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

Примеры

свернуть все

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

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

ftpobj = ftp('ftp.ngdc.noaa.gov')
ftpobj = 

  FTP Object
     host: ftp.ngdc.noaa.gov
     user: anonymous
      dir: /
     mode: binary

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

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

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

mget(ftpobj,'README.txt');

Считайте содержимое своей копии README.txt с помощью функции fileread. Разделите текст в строки с помощью splitlines функционируют и отображают первые четыре строки.

readme = fileread('README.txt');
readme = splitlines(readme);
readme(1:4)
ans = 4×1 cell array
    {'                 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'

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

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.

Советы

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

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

Алгоритмы

Код для объекта FTP основан на коде из Проекта Apache™.

В частности, функция ftp конфигурирует свойства для связей FTP, как задано Apache класс FTPClientConfig. Любое устанавливаемое свойство класса FTPClientConfig может быть установлено с помощью функции ftp с соответствующим аргументом пары "имя-значение".

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