Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ftp

FTP サーバーに接続してそのファイルにアクセスするオブジェクト

説明

関数ftpを呼び出して FTP サーバーに接続すると、FTP オブジェクトが作成されます。サーバー上の特定の FTP アカウントにアクセスするには、ユーザー名とパスワードを指定します。次に、FTP オブジェクトを使用して、ファイルのアップロードとダウンロードを行います。サーバー上で異なるフォルダーの作成、削除、およびそのフォルダーへの移動もできます。接続を閉じるには、関数closeを使用します。

メモ

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)は、名前と値のペアの引数を 1 つ以上使用して追加の入力引数を指定します。たとえば、'System'の値を'WINDOWS'に指定すると、Windows®オペレーティング システムを実行する FTP サーバーに接続できます。また、'LocalDataConnectionMethod'の値を指定して、接続モードをパッシブ モードからアクティブ モードに変更できます。

入力引数

すべて展開する

FTP サーバーの名前。文字ベクトルまたは string スカラーとして指定します。

接続の代替ポート番号を指定するには、hostにコロン (:) とポート番号を追加します。FTP サーバーの既定のポート番号は 21 です。

通常、サーバーの名前は'ftp.example.com'のように'ftp'で始まります。ただし、この方式は慣習であり、技術上の要件ではありません。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 接続を確立するためのモードは 2 種類あります。

  • 'active'— マシンはコマンドのチャネルを確立しますが、データのチャネルは FTP サーバーが確立します。アクティブ モードは、マシンがファイアウォールで保護されていて、外部ソースからの承認されていないセッション要求が許可されていない場合などに問題となることがあります。

  • 'passive'— マシンは両方のチャネルを確立します。コマンド チャネルを確立した後、マシンは FTP サーバーがポートをリッスンするよう要求します。これにより、マシンがそのポートに接続できるようになります。

最新の FTP 実装の大半がパッシブ モードを使用しているため、既定のモードは'passive'となります。しかし、一部の古い種類のサーバーに接続する場合、アクティブ モードの指定が必要となることがあります。

オブジェクト関数

ascii FTP 転送モードを ASCII に設定
binary FTP 転送モードをバイナリに設定
cd FTP サーバー上の現在のフォルダーの変更または表示
close FTPサーバーへの接続を閉じる
delete FTP サーバー上にあるファイルの削除
dir FTP サーバー上のフォルダーの内容をリスト
mget FTP サーバーからのファイルのダウンロード
mkdir FTP サーバーで新規フォルダーを作成
mput FTP サーバーへのファイルまたはフォルダーのアップロード
rename FTP サーバー上にあるファイルの名前の変更
rmdir FTP サーバー上のフォルダーの削除

すべて折りたたむ

FTPサーバーへの接続を開くには、FTP オブジェクトを作成します。FTP オブジェクトを使用して、ファイルをダウンロードし、サーバー上のサブフォルダーの内容をリストします。FTP セッションの終了時に、接続を閉じます。

まず、National Centers for Environmental Information (NCEI、米国環境情報センター) の 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を使用してテキストを複数の行に分割し、最初の 4 行を表示します。

readme = fileread('README.txt');自述= splitlines(自述);自述(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)

FTP サービスは National Centers for Environmental Information (NCEI、米国環境情報センター) により提供されています。NCEI の利用規約は、NCEI Privacy Policy, Disclaimer, and Copyrightを参照してください。

ヒント

  • FTP オブジェクトはプロキシ サーバー設定をサポートしていません。

  • 'System',systemKeyの名前と値のペアを指定する必要はありませんが、FTP サーバーを実行しているオペレーティング システム向けに FTP オブジェクトが設定されていない場合、FTP の関数dirの返す情報量が少なくなることがあります。このような場合、dirの返す構造体配列に空のフィールドがいくつか含まれることがあります。その場合は、ftpを再び呼び出して、systemKeyに正しい値を指定してください。

アルゴリズム

FTP オブジェクトのコードは、Apache™ プロジェクトのコードに基づいています。

特に、関数ftpは Apache のFTPClientConfigクラスで指定される FTP 接続のプロパティを設定します。FTPClientConfigクラスの設定可能なプロパティはいずれも、関数ftpおよび対応する名前と値のペアの引数を使用して設定できます。

R2006a より前に導入