ftp
FTP 서버에 연결하여 서버의 파일에 액세스
설명
FTP 연결 객체를 생성하는 ftp
함수를 호출하여 FTP 서버에 연결합니다. 그런 다음 FTP 연결 객체를 사용하여 파일을 업로드 및 다운로드합니다. 서버에서 다른 폴더를 생성, 삭제, 탐색할 수도 있습니다. 연결을 닫으려면 close
함수를 사용하십시오.
FTP는 보안 프로토콜이 아니므로 사용자 이름, 비밀번호 또는 FTP 서버에서 다운로드하거나 FTP 서버에 업로드하는 데이터를 암호화하지 않습니다. 보안 FTP 연결이 필요한 경우, sftp
를 사용하십시오.
생성
구문
설명
ftpobj = ftp(
는 FTP 서버 host
)host
에 대한 연결을 열고 FTP 연결 객체를 반환합니다. 익명(인증되지 않음) 연결을 지원하는 호스트에 연결할 때만 이 구문을 사용할 수 있습니다.
ftpobj = ftp(
는 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어, host
,username
,password
,Name,Value
)"System"
을 "Windows"
로 지정하여 Windows® 운영 체제에서 실행되는 FTP 서버에 연결하거나 "LocalDataConnectionMethod"
를 "active"
로 지정하여 연결 모드를 수동 모드에서 능동 모드로 변경할 수 있습니다.
입력 인수
FTP 서버의 호스트 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다.
FTP 서버의 디폴트 포트 번호는 21입니다. 연결을 위한 대체 포트 번호를 지정하려면 콜론(:
)과 포트 번호를 host
에 추가하십시오.
일반적으로 서버의 호스트 이름은 ftp
로 시작합니다(예: "ftp.example.com"
). 그러나 이는 관례일 뿐이며 기술적 요구 사항이 아닙니다. 예를 들어, ftpobj = ftp("www.example.com:20")
은 서버 www.example.com
이 FTP 서비스를 제공하도록 구성된 경우 포트 번호 20에 대한 익명 연결을 엽니다.
구성 데이터를 하드 코딩하지 않고도 MATLAB® Vault 또는 .env
파일에 이 민감한 정보를 저장하고 검색할 수 있습니다. 자세한 내용은 Keep Sensitive Information Out of Code 항목을 참조하십시오.
예: ftpobj = ftp("ftp.example.com")
FTP 서버에 대한 권한 있는 계정의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. FTP 객체는 username
을 일반 텍스트로 전송합니다.
권한 있는 계정의 비밀번호로, string형 스칼라 또는 문자형 벡터로 지정됩니다. FTP 객체는 password
를 일반 텍스트로 전송합니다.
보안을 강화하려면 비밀번호 같은 민감한 정보를 하드 코딩하지 마십시오. 자세한 내용은 Keep Sensitive Information Out of Code 항목을 참조하십시오.
예: ftpobj = ftp("ftp.example.com","myusername","mypassword")
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
예: ftpobj = ftp(host,username,password,System="Windows")
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: ftpobj = ftp(host,username,password,"System","Windows")
FTP 서버에서 실행되는 운영 체제의 유형으로, "System"
과 함께 "unix"
또는 "Windows"
로 구성된 이름-값 인수로 지정됩니다.
FTP 연결 객체는 서버의 운영 체제를 자동으로 감지합니다.
FTP 연결 객체가 해당 FTP 서버에서 실행되는 운영 체제에 맞게 구성되지 않은 경우, FTP dir
함수가 정보를 더 적게 반환할 수 있습니다. 이러한 경우, dir
은 일부 빈 필드가 포함된 구조체형 배열을 반환할 수 있습니다. 이 경우, ftp
를 다시 호출하고 "System"
이름-값 인수의 올바른 값을 지정하여 올바른 운영 체제를 지정하십시오.
연결 모드로, "LocalDataConnectionMethod"
와 함께 "passive"
또는 "active"
로 구성된 이름-값 인수로 지정됩니다.
FTP 연결을 설정할 때 사용하는 모드에는 두 가지가 있습니다. 대부분의 최신 FTP 구현은 passive
모드를 사용하지만, 일부 레거시 서버에 연결하려면 active
모드를 지정해야 할 수도 있습니다.
"passive"
— 두 채널 모두 사용자의 컴퓨터가 설정합니다. 컴퓨터는 명령 채널을 설정한 다음 컴퓨터가 포트에 연결할 수 있도록 FTP 서버에게 포트 수신을 시작하라고 요청합니다."active"
— 명령을 위한 채널은 사용자의 컴퓨터가 설정하고, 데이터를 위한 채널은 FTP 서버가 설정합니다. 능동 모드는 예를 들어 컴퓨터가 방화벽으로 보호되고 있어 외부 소스의 권한 없는 세션 요청을 허용하지 않는 경우 문제가 될 수 있습니다.
원격 서버에서 날짜를 읽어 들이기 위한 로캘로, "ServerLocale"
과 함께 string형 스칼라 또는 문자형 벡터로 구성된 이름-값 인수로 지정됩니다.
ServerLocale
값은 다음이 될 수 있습니다.
형식의 문자형 벡터 또는 string형 스칼라. 여기서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
입니다.
사용자 지정 함수 핸들은 다음 2개의 입력값을 포함해야 합니다.
디렉터리 항목의 목록으로, string형 벡터로 지정됩니다.
서버 로캘로, string형 스칼라로 지정됩니다.
사용자 지정 함수 핸들의 출력값은 m×1 크기의 구조체형 배열이어야 하며, 여기서 m은 폴더에 있는 항목의 개수입니다. 구조체 필드는 dir
함수에서 반환하는 구조체 필드 name
, isdir
, bytes
, date
, 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});
listing = struct("name",cell(structSize,1),"isdir",zeros(1,1), ... "bytes",zeros(1,1),"date",'',"datenum",zeros(1,1));
monthName = string(out{3}); day = string(out{4}); time = string(out{5}); names = out{1}; bytes = out{2};
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"
로 구성된 이름-값 인수로 지정됩니다. HTML 페이지와 RTF(서식 있는 텍스트) 파일 같은 텍스트 파일에 ASCII 모드를 사용합니다. 실행 파일 또는 ZIP 아카이브 같은 텍스트가 아닌 파일에 이진 모드를 사용합니다.
FTP 객체를 생성한 후에는 ascii와 이진 함수를 사용하여 전송 모드를 변경합니다. 다른 유형의 파일을 전송하기 위해 모드를 변경해야 할 수도 있습니다. 전송 모드 설정은 MATLAB 세션이 종료하기 전까지 또는 사용자가 모드 설정을 변경하기 전까지 유지됩니다.
R2024b 이후
연결에 허용되는 최대 시간으로, duration
형 스칼라로 지정됩니다. 기본적으로 연결은 300초 후에 종료됩니다.
R2024b 이후
전송에 허용되는 최대 시간으로, duration
형 스칼라로 지정됩니다. 값을 지정하지 않을 경우 FTP 전송에서 제한 시간을 초과하는 일이 발생하지 않습니다.
R2024b 이후
TLS/SSL을 사용한 서버 연결로, 다음 값 중 하나로 지정됩니다.
"none"
— TLS/SSL을 사용하여 서버에 연결하지 않습니다. 클라이언트와 서버 간에 일반 텍스트 데이터 전송을 사용합니다."strict"
— 클라이언트와 서버 간에 TLS/SSL 연결을 설정하도록 보장합니다. TLS/SSL 연결이 가능하지 않으면 연결이 실패하고 오류를 반환합니다."opportunistic"
— 가능한 경우 TLS/SSL 연결을 사용합니다. TLS/SSL 연결이 가능하지 않으면 FTP 연결은 클라이언트와 서버 간에 일반 텍스트 데이터 전송을 사용합니다.
TLS(전송 계층 보안)는 SSL(보안 소켓 계층)이라고도 하며, 클라이언트와 서버 간의 통신을 암호화하는 보안 프로토콜입니다.
참고
보안 고려 사항: 워크플로의 보안을 강화하려면 FTP 서버가 TLS/SSL 연결을 지원하는 경우 TLSMode
를 "strict"
로 지정하십시오.
객체 함수
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(National Centers for Environmental Information) 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: "/" CertificateFilename: "default" ConnectionTimeout: 5 min TransferTimeout: Inf sec
FTP 서버에서 최상위 폴더의 내용을 나열합니다.
dir(ftpobj)
DMSP INDEX.txt README.txt STP Snow_Ice Solid_Earth coastwatch dmsp4alan ftp.html geomag google12c4c939d7b90761.html index.html international ionosonde mgg pub wdc
FTP 서버에서 README.txt
파일을 다운로드합니다. mget
함수는 복사본을 현재 MATLAB® 폴더에 다운로드합니다.
mget(ftpobj,"README.txt");
readlines
함수를 사용하여 README.txt
복사본의 내용을 읽습니다.
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 DMSP ECLIPSE GEOMAGNETIC_DATA GOIN GPS_GNSS IONOSPHERE NOAA SEIS SGD SOLAR_DATA SPIDR STEP SWA Solid_Earth aavso_22nov16 aeronomy cdroms goesr ionosonde log.txt publications satellite_data space-weather space_environment_modeling swpc_products temp tivoli
cd
함수를 사용하여 하위 폴더로 변경합니다. cd
의 출력값은 현재 MATLAB 폴더가 아닌 FTP 서버에 있는 현재 폴더의 경로입니다.
cd(ftpobj,"STP/space-weather")
ans = '/STP/space-weather'
FTP 서버에서 현재 폴더의 내용을 나열합니다.
dir(ftpobj)
aurora-airglow denig-files documentation geomagnetic-data interplanetary-data ionospheric-data online-publications satellite-data solar-data spacecraft-environments
FTP 서버와의 연결을 닫습니다. FTP 객체를 삭제하거나 연결이 시간 초과되도록 하여 연결을 닫을 수도 있습니다.
close(ftpobj)
NCEI(National Centers for Environmental Information)에서 제공하는 FTP 서비스입니다. NCEI 개인정보 취급방침을 보려면 NCEI Privacy Policy, Disclaimer, and Copyright를 참조하십시오.
NCEI(National Centers for Environmental Information) FTP 서버에 연결합니다. 서버 로캘을 영국으로 지정합니다. 이름-값 인수 "DirParserFcn"
을 사용하여 Windows에 맞게 구문 분석되도록 FTP 서버의 LIST
명령 출력값을 지정합니다.
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: "/" CertificateFilename: "default" ConnectionTimeout: 5 min TransferTimeout: Inf sec
NCEI(National Centers for Environmental Information)에서 제공하는 FTP 서비스입니다. NCEI 개인정보 취급방침을 보려면 NCEI Privacy Policy, Disclaimer, and Copyright를 참조하십시오.
팁
FTP 객체는 프록시 서버 설정을 지원하지 않습니다.
로그인 폴더로 이동하려면
cd
함수에~
기호를 전달하십시오.
버전 내역
R2006a 이전에 개발됨ConnectionTimeout
및 TransferTimeout
이름-값 인수를 사용하여 각각 연결과 전송에 허용되는 최대 시간을 지정할 수 있습니다.
FTP 서버에 연결할 때 TLSMode
이름-값 인수를 사용하여 TLS(전송 계층 보안)를 활성화할 수 있습니다.
참고 항목
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)