이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
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"
값을 지정하여 연결 모드를 수동 모드에서 능동 모드로 변경합니다.
입력 인수
host
— FTP 서버의 호스트 이름
string형 스칼라 | 문자형 벡터
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")
username
— 권한 있는 계정의 이름
string형 스칼라 | 문자형 벡터
FTP 서버에 대한 권한 있는 계정의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. FTP 객체는 username
을 일반 텍스트로 전송합니다.
password
— 권한 있는 계정의 비밀번호
string형 스칼라 | 문자형 벡터
권한 있는 계정의 비밀번호로, string형 스칼라 또는 문자형 벡터로 지정됩니다. FTP 객체는 password
를 일반 텍스트로 전송합니다.
예: ftpobj = ftp("ftp.example.com","myusername","mypassword")
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: "System","Windows"
System
— FTP 서버에서 실행되는 운영 체제 유형
"unix"
(디폴트 값) | "Windows"
FTP 서버에서 실행되는 운영 체제의 유형으로, "System"
과 함께 "unix"
또는 "Windows"
로 구성된 이름-값 인수로 지정됩니다.
FTP 연결 객체는 서버의 운영 체제를 자동으로 감지합니다.
FTP 연결 객체가 해당 FTP 서버에서 실행되는 운영 체제에 맞게 구성되지 않은 경우, FTP dir
함수가 정보를 더 적게 반환할 수 있습니다. 이러한 경우, dir
은 일부 빈 필드가 포함된 구조체형 배열을 반환할 수 있습니다. 이 경우, ftp
를 다시 호출하고 "System"
이름-값 인수의 올바른 값을 지정하여 올바른 운영 체제를 지정하십시오.
LocalDataConnectionMethod
— 연결 모드
"passive"
(디폴트 값) | "active"
연결 모드로, "LocalDataConnectionMethod"
와 함께 "passive"
또는 "active"
로 구성된 이름-값 인수로 지정됩니다.
FTP 연결을 설정할 때 사용하는 모드에는 두 가지가 있습니다. 대부분의 최신 FTP 구현은 passive
모드를 사용하지만, 일부 레거시 서버에 연결하려면 active
모드를 지정해야 할 수도 있습니다.
"passive"
— 두 채널 모두 사용자의 컴퓨터가 설정합니다. 컴퓨터는 명령 채널을 설정한 다음 컴퓨터가 포트에 연결할 수 있도록 FTP 서버에게 포트 수신을 시작하라고 요청합니다."active"
— 명령을 위한 채널은 사용자의 컴퓨터가 설정하고, 데이터를 위한 채널은 FTP 서버가 설정합니다. 능동 모드는 예를 들어 컴퓨터가 방화벽으로 보호되고 있어 외부 소스의 권한 없는 세션 요청을 허용하지 않는 경우 문제가 될 수 있습니다.
ServerLocale
— 원격 서버에서 날짜를 읽어 들이기 위한 로캘
"en_US"
(디폴트 값) | string scalar
| character vector
원격 서버에서 날짜를 읽어 들이기 위한 로캘로, "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" | 중국어(간체) | 중국 |
DirParserFcn
— FTP 서버의 LIST 명령 출력값을 구문 분석하는 방법
function_handle
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
Mode
— FTP
서버의 전송 모드
"binary"
(디폴트 값) | "ascii"
FTP 서버의 전송 모드로, "Mode"
와 함께 "binary"
또는 "ascii"
로 구성된 이름-값 인수로 지정됩니다. HTML 페이지와 RTF(서식 있는 텍스트) 파일 같은 텍스트 파일에 ASCII 모드를 사용합니다. 실행 파일 또는 ZIP 아카이브 같은 텍스트가 아닌 파일에 이진 모드를 사용합니다.
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(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: "/"
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
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 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
의 출력값은 현재 MATLAB 폴더가 아닌 FTP 서버에 있는 현재 폴더의 경로입니다.
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)
NCEI(National Centers for Environmental Information)에서 제공하는 FTP 서비스입니다. NCEI 서비스 약관을 보려면 NCEI Privacy Policy, Disclaimer, and Copyright를 참조하십시오.
서버 로캘 값 지정 및 LIST
명령 출력값 구문 분석하기
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: "/"
NCEI(National Centers for Environmental Information)에서 제공하는 FTP 서비스입니다. NCEI 서비스 약관을 보려면 NCEI Privacy Policy, Disclaimer, and Copyright를 참조하십시오.
팁
FTP 객체는 프록시 서버 설정을 지원하지 않습니다.
로그인 폴더로 이동하려면
cd
함수에~
기호를 전달하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)