主要内容

sftp

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

描述

连接到SFTP服务器通过调用sftp函数,用于创建SFTP连接对象。要访问服务器上指定的SFTP帐户,需要指定主机和用户。然后使用SFTP对象上传、下载和删除文件。您还可以在服务器上创建、删除和导航到不同的文件夹。要关闭连接,请使用关闭函数。

因为SFTP是一种安全协议,所以SFTP对象将加密您的用户名、密码以及从SFTP服务器下载或上传到SFTP服务器的任何数据。

创建

描述

例子

s = sftp (宿主,用户打开连接之间的用户和SFTP服务器宿主并返回一个SFTP连接对象。从默认位置检索SSH密钥。

例子

s = sftp (宿主,用户“PublicKeyFile”,publickeyfile“PrivateKeyFile”,privatekeyfile使用指定位置上的密钥文件。

例子

s = sftp (宿主,用户“密码”,密码使用指定的密码。

例子

s = sftp (___,名称,值使用一个或多个名称-值参数指定额外的输入参数。例如,可以指定的值“ServerSystem”作为“Windows”连接运行在Windows上的SFTP服务器®操作系统。

输入参数

全部展开

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

SFTP服务器端口号默认为22。若要指定连接的备用端口号,请在后面加冒号(的端口号宿主

通常,服务器的主机名以“sftp”,如“sftp.example.com”.然而,这种做法是一种惯例,而不是技术要求。例如,s = sftp (www.example.com: 22)打开一个匿名连接到端口号22如果服务器www.example.com配置为提供SFTP服务。

例子:s = sftp(“sftp.example.com”)

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

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

例子:“密码”、“PaSsWoRd123”

用于SFTP身份验证的公钥文件,指定为字符串标量或字符向量。公钥文件的默认位置取决于您的操作系统。

  • 在Linux和MacOS操作系统下,公钥文件的默认位置为$ HOME / . ssh / id_rsa . pub

  • 在Windows操作系统中,公钥文件的默认位置为% USERPROFILE % \ . ssh \ id_rsa . pub

例子:“PublicKeyFile”、“/用户/ abc / sshKeys / keys.pub”

用于SFTP身份验证的私钥文件,指定为字符串标量或字符向量。私钥文件的默认位置取决于您的操作系统。

  • 在Linux和MacOS操作系统下,私钥文件的默认位置为$ HOME / . ssh / id_rsa

  • 在Windows操作系统中,私钥文件的默认位置为% USERPROFILE % \ \ id_rsa . ssh

例子:“PrivateKeyFile”、“/用户/ abc / sshKeys /键”

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

为输出的日期字段使用的类型dir,指定为“datetime”“文本”

SFTP服务器上运行的操作系统类型,指定为either“unix”“Windows”

从远程服务器读取日期的区域设置,指定为字符串标量或字符向量。

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命令输出,指定为函数句柄。默认值是@matlab.io.ftp.parseDirListingForUnix@matlab.io.ftp.parseDirListingForWindows,取决于服务器的操作系统。

您还可以指定一个自定义函数句柄。自定义函数句柄必须有三个输入:

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

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

  3. 日期和时间数据的数据类型,指定为“datetime”“文本”

自定义函数句柄的输出必须是一个size的结构数组1,是文件夹中项目的数量。属性返回的结构的字段必须与结构的字段匹配dir功能:的名字,isdir,字节,日期,datenum.有关这些字段的更多信息,请参见dir函数引用页面。

如果默认值导致无法解析的错误dir输出时,指定此名称-值参数。必须正确指定此参数才能使用引用的对象函数dir

函数签名

自定义写入函数必须接受三个输入参数,目录条目列表,条目、服务器语言环境serverLocale,以及日期和时间数据的数据类型,datetimeType

函数清单= myFormatFcn(条目、serverLocale datetimeType)

例子函数

将条目加入要输入的单元格数组中textscan.预先分配一个结构体.从textscan输出。构造结构,填充适当的字段。

函数list = myFormatFcn(entries,serverLocale,datetimeType) entries = join(entries,换行);= textscan(条目,“% % d % 3 c % d %年代”,“MultipleDelimsAsOne”,真正的);structSize =元素个数({1});清单=结构(“名称”细胞(structSize 1),“isdir”0 (1,1),...“字节”0 (1,1),“日期”,'',“datenum”0 (1,1));monthName =字符串({3});一天=字符串({4});时间=字符串({5});名称= {1};字节= {2};ii = 1: structSize list (ii).name = names{ii};清单(ii)。isdir= false; listing(ii).bytes = bytes(ii); makeDate = day(ii) +“-”+ monthName (ii) +”“+...(2);thisDate = datetime (makeDate,“InputFormat”,“dd-MMM HH: mm”,...“场所”, serverLocale);如果datetimeType = =“文本”清单(ii)。日期= datestr(thisDate);其他的清单(ii)。日期= thisDate;结束清单(ii)。datenum= datenum(thisDate);结束结束

对象的功能

cd 更改或查看SFTP或FTP服务器上的当前文件夹
关闭 关闭与SFTP或FTP服务器的连接
删除 删除SFTP或FTP服务器上的文件
dir 列出SFTP或FTP服务器上的文件夹内容
mget 从SFTP或FTP服务器下载文件
mkdir 在SFTP或FTP服务器上创建新文件夹
mput 上传文件或文件夹到SFTP或FTP服务器
重命名 在SFTP或FTP服务器上重命名文件
删除文件夹 删除SFTP或FTP服务器上的文件夹

例子

全部折叠

连接到示例SFTP服务器。

s = sftp (“sftp.example.net”,“又”
带有属性的SFTP: Host: "sftp.example.net" Username: "jsmith" Port: 22 ServerSystem: "Windows" DatetimeType: "datetime" ServerLocale: "en_US" DirParserFcn: @matlab.io.ftp。parseDirListingForWindows RemoteWorkingDirectory:“/ home / jsmith”

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

首先,连接示例SFTP服务器。

s = sftp (“sftp.example_galapagos.net”,“又”,“密码”,“PaSsWoRd123”
带有属性的SFTP:主机:"sftp.example_galapagos.net"用户名:"jsmith"端口:22 ServerSystem: "unix" DatetimeType: "datetime" ServerLocale: "en_US" DirParserFcn: @matlab.io.ftp。parseDirListingForUnix RemoteWorkingDirectory:“/ home / jsmith”

列出顶级文件夹的内容。

dir (s)
空气质量鱼类昆虫鸟类哺乳动物爬行动物气候降雨

下载该文件固定从SFTP服务器。的mget函数下载一个副本到您当前的MATLAB®文件夹。

mget(年代,“固定”);

阅读你的副本的内容固定使用readline函数。查看前三行。

自述= readline (“固定”);自述(1:3)
ans =4×1的字符串“欢迎来到”“加拉帕戈斯研究所数据中心”“SFTP区域”

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

dir(年代,“家/ jsmith的小鸟”
信天翁,鸭子,苍鹭,鹦鹉,鳄梨,高脚鸟,猎鹰,翠鸟,鹈鹕,巴猫头鹰,火烈鸟,模仿鸟,企鹅,山雀,军舰鸟,夜莺,野鸡,鲣鸟,grebes,北方风暴海燕,鸽子,大喙鸟,珍珠鸡,鹗,鸻,鸬鹚,海鸥,猫头鹰,布谷鸟,鹰,蛎鹬

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

cd(年代,“家庭/ jsmith /鸟/苍鹭”
ans = " home / jsmith /鸟/苍鹭”

列出当前文件夹的内容。

dir (s)
文档great_egret_data migration_patterns great_blue_heron_data green_heron_data nesting_behaviors

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

关上(年代)

连接到示例SFTP服务器。指定服务器区域设置为United Kingdom。指定SFTP服务器的列表使用name-value参数来解析相对于Windows的命令输出“DirParserFcn”

s = sftp (“sftp.example_london.net”,“又”,“密码”,...“PaSsWoRd123”,“ServerLocale”,“en_GB”,“DirParserFcn”,...@matlab.io.ftp.parseDirListingForWindows)
带有属性的SFTP: Host: "sftp.example_london.net" Username: "jsmith" Port: 22 ServerSystem: "Windows" DatetimeType: "datetime" ServerLocale: "en_GB" DirParserFcn: @matlab.io.ftp。parseDirListingForWindows RemoteWorkingDirectory:“/ home / jsmith”

连接到示例SFTP服务器。指示SFTP对象以文本形式返回日期。

s = sftp (“sftp.example.net”,“又”,“DatetimeType”,“文本”
带有属性的SFTP: Host: "sftp.example.net" Username: "jsmith" Port: 22 ServerSystem: "Windows" DatetimeType: "text" ServerLocale: "en_US" DirParserFcn: @matlab.io.ftp。parseDirListingForWindows RemoteWorkingDirectory:“/ home / jsmith”

控件的日期属性dir输出。

d = dir (s);d.date
ans = ' 03 - 12月- 2015 '

限制

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

提示

  • 通过象征的cd函数导航到登录文件夹。

介绍了R2021a