Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

ftp

FTP 서버에 연결하고 FTP 서버의 파일에 액세스하기 위한 객체

설명

FTP 객체를 생성하는 ftp 함수를 호출하여 FTP 서버에 연결합니다. 서버에서 특정 FTP 계정에 액세스하려면 사용자 이름과 비밀번호를 지정하십시오. 그런 다음 FTP 객체를 사용하여 파일을 업로드 및 다운로드합니다. 서버에서 다른 폴더를 생성, 삭제, 탐색할 수도 있습니다. 연결을 끊으려면 close 함수를 사용하십시오.

참고

FTP는 보안 프로토콜이 아니므로 FTP 객체는 사용자 이름, 비밀번호 또는 FTP 서버에서 다운로드하거나 FTP 서버에 업로드한 모든 데이터를 암호화하지 않습니다. 보안 FTP 연결이 필요한 경우, 사용자의 시스템에서 제공하는 SFTP 클라이언트를 사용하십시오.

생성

설명

예제

ftpobj = ftp(host)는 FTP 서버 host에 대한 연결을 열고 이 연결을 FTP 객체 ftpobj에 저장합니다. 이 구문을 사용하려면 host가 익명 연결을 지원해야 합니다.

ftpobj = ftp(host,username,password)는 지정된 사용자 이름과 비밀번호로 FTP 계정에 액세스합니다.

ftpobj = ftp(host,username,password,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 입력 인수를 추가로 지정합니다. 예를 들어, 'System' 값을 'WINDOWS'로 지정하여 Windows® 운영 체제를 실행하는 FTP 서버에 연결할 수 있습니다. 'LocalDataConnectionMethod'의 값을 지정하여 연결 모드를 수동 모드에서 능동 모드로 변경할 수도 있습니다.

입력 인수

모두 확장

FTP 서버의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

연결을 위한 대체 포트 번호를 지정하려면 콜론(:)과 포트 번호를 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 서버에 대한 권한 있는 계정의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. FTP 객체는 username을 일반 텍스트로 전송합니다.

권한 있는 계정의 비밀번호로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. FTP 객체는 password를 일반 텍스트로 전송합니다.

예: ftpobj = ftp('ftp.example.com','nlee','mypassword')는 비밀번호 mypassword를 사용하여 사용자 nlee에 대한 연결을 엽니다.

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: ftpobj = ftp('ftp.example.com','nlee','mypassword','System','WINDOWS')는 Windows 기반 운영 체제를 실행하는 FTP 서버에 대한 연결을 엽니다.

FTP 서버에서 실행되는 운영 체제의 유형으로, 'System'과 함께 'UNIX' 또는 'WINDOWS'가 쉼표로 구분되어 지정됩니다.

연결 모드로, 'LocalDataConnectionMethod'와 함께 'passive' 또는 'active'가 쉼표로 구분되어 지정됩니다.

FTP 연결을 설정할 때 사용하는 모드에는 두 가지가 있습니다.

  • 'active' — 명령을 위한 채널은 사용자의 컴퓨터가 설정하고, 데이터를 위한 채널은 FTP 서버가 설정합니다. 능동 모드는 예를 들어 컴퓨터가 방화벽으로 보호되고 있어 외부 소스의 권한 없는 세션 요청을 허용하지 않는 경우 문제가 될 수 있습니다.

  • 'passive' — 두 채널 모두 사용자의 컴퓨터가 설정합니다. 컴퓨터는 명령 채널을 설정한 다음 컴퓨터가 포트에 연결할 수 있도록 FTP 서버에게 포트 수신을 시작하라고 요청합니다.

오늘날 대부분의 FTP 구현은 수동 모드를 사용하므로 디폴트 모드는 'passive'입니다. 일부 레거시 서버에 연결하려면 능동 모드를 지정해야 할 수 있습니다.

객체 함수

asciiFTP 전송 모드를 ASCII로 설정
binaryFTP 전송 모드를 이진으로 설정
cdFTP 서버에서 현재 폴더 변경 또는 보기
closeFTP 서버 연결 닫기
deleteFTP 서버에서 파일 삭제
dirFTP 서버의 폴더 내용 나열
mgetFTP 서버에서 파일 다운로드
mkdirMake new folder on FTP server
mputUpload file or folder to FTP server
renameRename file on FTP server
rmdirRemove folder on FTP server

예제

모두 축소

FTP 서버에 대한 연결을 열려면 FTP 객체를 만드십시오. FTP 객체를 사용하여 파일을 다운로드하고 서버에 있는 하위 폴더의 내용을 나열합니다. FTP 세션이 종료되면 연결을 끊습니다.

먼저, NCEI(National Centers for Environmental Information) 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                                                 
 

FTP 서버에서 README.txt 파일을 다운로드합니다. mget 함수는 복사본을 현재 MATLAB® 폴더에 다운로드합니다.

mget(ftpobj,'README.txt');

fileread 함수를 사용하여 README.txt 복사본의 내용을 읽습니다. 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의 출력값은 현재 MATLAB 폴더가 아닌 FTP 서버에 있는 현재 폴더의 경로입니다.

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)

NCEI(National Centers for Environmental Information)에서 제공하는 FTP 서비스입니다. NCEI 서비스 약관을 보려면 NCEI Privacy Policy, Disclaimer, and Copyright를 참조하십시오.

  • FTP 객체는 프록시 서버 설정을 지원하지 않습니다.

  • 'System',systemKey 이름-값 쌍을 지정하지 않아도 되지만, FTP 서버에서 실행되는 운영 체제에 대해 FTP 객체가 구성되지 않은 경우 FTP dir 함수가 반환하는 정보가 적어질 수 있습니다. 이러한 경우, dir은 일부 빈 필드가 포함된 구조체형 배열을 반환할 수 있습니다. 이렇게 되면 ftp를 다시 호출하고 systemKey의 올바른 값을 지정하십시오.

알고리즘

FTP 객체의 코드는 Apache™ Project의 코드를 기반으로 합니다.

특히, ftp 함수는 Apache FTPClientConfig 클래스에 지정된 대로 FTP 연결에 대한 속성을 구성합니다. FTPClientConfig 클래스의 모든 설정 가능한 속성은 대응하는 이름-값 쌍 인수와 함께 ftp 함수를 사용하여 설정할 수 있습니다.

R2006a 이전에 개발됨