主要内容

ftp

连接到FTP服务器以访问其文件

描述

方法连接到FTP服务器ftp函数,它创建一个FTP连接对象。然后使用FTP连接对象上传和下载文件。您还可以在服务器上创建、删除和导航到不同的文件夹。要关闭连接,请使用关闭函数。

由于FTP不是一种安全协议,它不会加密您的用户名、密码或从FTP服务器下载或上载到FTP服务器的任何数据。如果您需要安全的FTP连接,请使用sftp

创建

描述

例子

Ftpobj = ftp(宿主打开到FTP服务器的连接宿主并返回一个FTP连接对象。只能对支持匿名(未经身份验证)连接的主机使用此语法。金宝app

Ftpobj = ftp(宿主用户名使用指定用户名访问FTP帐户。只能对支持匿名(未经身份验证)连接的主机使用此语法。金宝app

Ftpobj = ftp(宿主用户名密码使用指定的用户名和密码访问FTP帐户。

Ftpobj = ftp(宿主用户名密码名称,值使用一个或多个名称-值参数指定其他输入参数。例如,指定“系统”“Windows”连接到运行Windows操作系统的FTP服务器®操作系统,或指定的值“LocalDataConnectionMethod”将连接模式从被动模式更改为主动模式。

输入参数

全部展开

FTP服务器的主机名,指定为字符串标量或字符向量。

FTP服务器默认端口号为21。若要指定连接的备用端口号,请添加冒号()和端口号宿主

通常,服务器的主机名以ftp“ftp.example.com”.但是,这种做法是一种约定,而不是技术需求。例如,Ftpobj = ftp("www.example.com:20")打开到端口号20的匿名连接(如果服务器www.example.com配置FTP服务。

例子:Ftpobj = ftp("ftp.example.com")

FTP服务器上授权帐户的名称,以字符串标量或字符向量形式指定。FTP对象发送用户名作为纯文本。

授权帐户的密码,指定为字符串标量或字符向量。FTP对象发送密码作为纯文本。

例子:Ftpobj = ftp("ftp.example.com","myusername","mypassword")

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“系统”、“窗口”

FTP服务器上运行的操作系统类型,指定为由“系统”,要么“unix”“Windows”

FTP连接对象自动检测服务器的操作系统。

FTPdir如果FTP服务器上运行的操作系统没有配置FTP连接对象,函数返回的信息可能会更少。在这种情况下,dir可能返回一个包含一些空字段的结构数组。那样的话,打电话吧ftp属性的正确值“系统”参数指定正确的操作系统。

连接模式,指定为由“LocalDataConnectionMethod”,要么“被动”“活跃”

FTP连接有两种建立方式。大多数现代FTP实现使用被动模式,但要连接到一些遗留服务器,您可能需要指定活跃的模式。

  • “被动”-您的机器建立了两个通道。在建立命令通道之后,您的计算机请求FTP服务器开始侦听某个端口,以便您的计算机可以连接到该端口。

  • “活跃”—您的机器为命令建立了通道,但FTP服务器为数据建立了通道。例如,如果您的计算机受到防火墙的保护,并且不允许来自外部源的未经授权的会话请求,则活动模式可能会出现问题。

区域设置,用于从远程服务器读取日期,指定为由“ServerLocale”和一个字符串标量或字符向量。

ServerLocale取值为:

  • 窗体中的字符向量或字符串标量xx_YY,在那里xx是一个小写的ISO 639-1两个字母的代码,指定一种语言,和YY是一个大写的ISO 3166-1 alpha-2代码,用于指定国家。

该表列出了区域设置的一些常用值。

语言环境 语言 国家
“de_DE” 德国 德国
“en_GB” 英语 联合王国
“en_US” 英语 美国
“es_ES” 西班牙语 西班牙
“fr_FR” 法国 法国
“it_IT” 意大利 意大利
“ja_JP” 日本 日本
“ko_KR” 朝鲜文 韩国
“设置nl_NL” 荷兰 荷兰
“zh_CN” 中文(简体) 中国

如何解析FTP服务器的LIST命令输出,指定为由“DirParserFcn”和一个函数句柄。默认值为任意一种@matlab.io.ftp.parseDirListingForUnix@matlab.io.ftp.parseDirListingForWindows,这取决于服务器的操作系统。

自定义函数句柄必须有两个输入:

  1. 目录项的列表,指定为字符串向量。

  2. 服务器区域设置,指定为字符串标量。

自定义函数句柄的输出必须是大小为m × 1的结构数组,其中m是文件夹中的项数。类返回的结构的字段必须匹配dir功能:的名字isdir字节日期,datenum.有关这些字段的详细信息,请参见dir功能页面。

属性导致引用错误,则无法解析dir输出时,指定此名称-值参数。此参数必须正确指定,以使用引用的对象函数dir

函数签名

自定义写入函数必须接受两个输入参数,目录条目列表,条目服务器区域,serverLocale

函数list = myFormatFcn(entries,serverLocale)

例子函数

将条目连接到将输入到textscan的单元格数组中:

函数list = myFormatFcn(entries,serverLocale) entries = join(entries,newline);Out = textscan(条目,“% % d % 3 c % d %年代”“MultipleDelimsAsOne”,真正的);structSize = number (out{1});
预分配结构:
清单= struct(“名称”细胞(structSize 1),“isdir”0 (1,1),...“字节”0 (1,1),“日期”“datenum”0 (1,1));
从textscan输出中获取各个部分:
monthName = string(out{3});Day = string(out{4});Time = string(out{5});Names = out{1};字节= out{2};
构造填充适当字段的结构体:
ii = 1: structSize列表(ii).name = names{ii};清单(ii)。isdir= false; listing(ii).bytes = bytes(ii); makeDate = day(ii) +“-”+ monthName(ii) +”“+...(2);thisDate =日期时间(makeDate,“InputFormat”“dd-MMM HH: mm”...“场所”, serverLocale);清单(ii)。日期= datestr(thisDate); listing(ii).datenum = datenum(thisDate);结束结束

FTP服务器的传输模式,指定为由“模式”而且“二元”“ascii”.使用ASCII模式的文本文件,如HTML页面和富文本格式(RTF)文件。对于非文本文件,如可执行文件或压缩档案,使用二进制模式。

创建FTP对象后,使用ascii和二进制函数来更改传输模式。如果要传输不同类型的文件,可能需要更改模式。传输模式设置将一直持续到MATLAB会话结束或更改它们为止。

对象的功能

美国信息交换标准代码 设置FTP传输模式为ASCII码
二进制 FTP传输模式设置为二进制
cd 在SFTP或FTP服务器上更改或查看当前文件夹
关闭 关闭SFTP或FTP服务器的连接
删除 在SFTP或FTP服务器上删除文件
dir 列出SFTP或FTP服务器上的文件夹内容
mget 从SFTP或FTP服务器下载文件
mkdir 在SFTP或FTP服务器上创建新文件夹
mput 上传文件或文件夹到SFTP或FTP服务器
重命名 在SFTP或FTP服务器上重命名文件
删除文件夹 删除SFTP或FTP服务器上的文件夹

例子

全部折叠

要打开到FTP服务器的连接,需要创建FTP对象。使用FTP对象下载文件,并列出服务器上子文件夹的内容。在FTP会话结束时,关闭连接。

首先,连接到国家环境信息中心(NCEI)的FTP服务器。

Ftpobj = ftp(“ftp.ngdc.noaa.gov”
带属性的FTP:主机:FTP .ngdc.诺亚.gov用户名:anonymous端口号: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 .html

下载固定文件从FTP服务器。的mget函数将副本下载到您当前的MATLAB®文件夹中。

mget (ftpobj“固定”);

阅读你的副本的内容固定使用readline函数。

Readme = readlines(“固定”);自述(1:4)
ans =4×1的字符串"欢迎来到" "国家海洋和大气管理局/国家环境信息中心(NCEI) " "前身为国家地球物理数据中心(NGDC)" "FTP区”

属性列出子文件夹的内容dir函数。

dir (ftpobj“STP”
NOAA Solid_Earth出版物DMSP SEIS aavso_22nov16卫星数据ECLIPSE SGD航空空间天气地磁数据太阳数据cdroms空间环境建模GOIN SPIDR goesr swpc_products GPS_GNSS STEP电离层tivoli电离层SWA log.txt下载188bet金宝搏

控件更改为子文件夹cd函数。的输出cd是FTP服务器上当前文件夹的路径,而不是当前MATLAB文件夹的路径。

cd (ftpobj“STP /空间气象”
ans = '/STP/space-weather'

列出FTP服务器上当前文件夹的内容。

dir (ftpobj)
极光-气辉文件星际数据在线出版物太阳数据诋毁文件地磁数据电离层数据卫星数据航天器环境

关闭与FTP服务器的连接。您还可以通过删除FTP对象或让连接超时来关闭连接。

关上(ftpobj)

FTP服务由国家环境信息中心(NCEI)提供。看到NCEI隐私政策,免责声明和版权浏览NCEI的服务条款。

连接到国家环境信息中心(NCEI) FTP服务器。将服务器地区指定为United Kingdom。指定FTP服务器列表命令输出,使用name-value参数相对于Windows进行解析“DirParserFcn”

Ftpobj = ftp(“ftp.ngdc.noaa.gov”“ServerLocale”“en_GB”“DirParserFcn”@matlab.io.ftp.parseDirListingForWindows)
带属性的FTP:主机:FTP .ngdc.诺亚.gov用户名:anonymous端口号:21 ServerLocale: en_GB DirParserFcn: @matlab.io.ftp。parseDirListingForWindows Mode: "binary" LocalDataConnectionMethod: "passive" RemoteWorkingDirectory: "/"

FTP服务由国家环境信息中心(NCEI)提供。看到NCEI隐私政策,免责声明和版权浏览NCEI的服务条款。

提示

  • FTP对象不支持代理服务器设置。金宝app

  • 通过符号cd函数导航到登录文件夹。

版本历史

R2006a之前介绍