このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ftp
FTP サーバーのファイルにアクセスするための接続
説明
関数 ftp
を呼び出して FTP サーバーに接続すると、FTP 接続オブジェクトが作成されます。次に、FTP 接続オブジェクトを使用して、ファイルのアップロードとダウンロードを行います。サーバー上で異なるフォルダーの作成、削除、およびそのフォルダーへの移動もできます。接続を閉じるには、関数 close
を使用します。
FTP は安全なプロトコルではないため、ユーザー名、パスワード、FTP サーバーにアップロードするデータおよびダウンロードするデータを一切暗号化しません。セキュアな FTP 接続が必要な場合は、sftp
を使用してください。
作成
構文
説明
ftpobj = ftp(
は、1 つ以上の名前と値の引数を使用して追加の入力引数を指定します。たとえば、Windows® オペレーティング システムを実行する FTP サーバーに接続するには host
,username
,password
,Name,Value
)"System"
,"Windows"
を指定します。また、接続モードをパッシブ モードからアクティブ モードに変更するには "LocalDataConnectionMethod"
の値を指定します。
入力引数
host
— FTP サーバーのホスト名
string スカラー | 文字ベクトル
FTP サーバーのホスト名。string スカラーまたは文字ベクトルとして指定します。
FTP サーバーの既定のポート番号は 21 です。接続の代替ポート番号を指定するには、host
にコロン (:
) とポート番号を追加します。
通常、サーバーのホスト名は "ftp.example.com"
のように ftp
で始まります。ただし、この方式は慣習であり、技術上の要件ではありません。たとえば、ftpobj = ftp("www.example.com:20")
は、サーバー www.example.com
が FTP サービスを提供するように構成されていれば、ポート番号 20 への匿名接続を開きます。
例: 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 接続を確立するためのモードは 2 種類あります。最新の FTP 実装の大半は passive
モードを使用しますが、一部の古い種類のサーバーに接続する場合に active
モードの指定が必要となることがあります。
"passive"
— マシンは両方のチャネルを確立します。コマンド チャネルを確立した後、マシンは FTP サーバーがポートをリッスンするよう要求します。これにより、マシンがそのポートに接続できるようになります。"active"
— マシンはコマンドのチャネルを確立しますが、データのチャネルは FTP サーバーが確立します。アクティブ モードは、マシンがファイアウォールで保護されていて、外部ソースからの承認されていないセッション要求が許可されていない場合などに問題となることがあります。
ServerLocale
— リモート サーバーから日付を読み取るロケール
"en_US"
(既定値) | string scalar
| character vector
リモート サーバーから日付を読み取るロケール。"ServerLocale"
と string スカラーまたは文字ベクトルで構成される名前と値の引数として指定します。
ServerLocale
の値は次のいずれかになります。
の形式の文字ベクトルまたは string スカラー。xx
_YY
xx
は ISO 639-1 で定義された小文字 2 文字の言語コードで、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
の 2 つの入力引数を受け入れなければなりません。
function listing = myFormatFcn(entries,serverLocale)
関数の例
textscan への入力となる要素を cell 配列に結合します。
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"
で構成される名前と値の引数として指定します。ASCII モードは、HTML ページやリッチ テキスト形式 (RTF) ファイルなどのテキスト ファイルに使用します。バイナリ モードは、実行可能ファイルや zip アーカイブなどの非テキスト ファイルに使用します。
FTP オブジェクトの作成後に転送モードを変更するには、関数 ascii および binary を使用します。さまざまなタイプのファイルを転送するためにモードの変更が必要になることがあります。転送モードの設定は、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 セッションの終了時に、接続を閉じます。
まず、National Centers for Environmental Information (NCEI、米国環境情報センター) の 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)
FTP サービスは National Centers for Environmental Information (NCEI、米国環境情報センター) により提供されています。NCEI の利用規約は、NCEI Privacy Policy, Disclaimer, and Copyright を参照してください。
サーバーのロケールと LIST
コマンド出力の解析についての値の指定
National Centers for Environmental Information (NCEI、米国環境情報センター) の FTP サーバーに接続します。サーバーのロケールを英国と指定します。名前と値の引数 "DirParserFcn"
を使用して、FTP サーバーの LIST
コマンド出力を Windows について解析するように指定します。
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: "/"
FTP サービスは National Centers for Environmental Information (NCEI、米国環境情報センター) により提供されています。NCEI の利用規約は、NCEI Privacy Policy, Disclaimer, and Copyright を参照してください。
ヒント
FTP オブジェクトはプロキシ サーバー設定をサポートしていません。
ログイン フォルダーに移動するには、関数
cd
に~
記号を渡します。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは 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)