ftp
FTP サーバーのファイルにアクセスするための接続
説明
関数 ftp
を呼び出して FTP サーバーに接続すると、FTP 接続オブジェクトが作成されます。次に、FTP 接続オブジェクトを使用して、ファイルのアップロードとダウンロードを行います。サーバー上で異なるフォルダーの作成、削除、およびそのフォルダーへの移動もできます。接続を閉じるには、関数 close
を使用します。
FTP は安全なプロトコルではないため、ユーザー名、パスワード、FTP サーバーにアップロードするデータおよびダウンロードするデータを一切暗号化しません。セキュアな FTP 接続が必要な場合は、sftp
を使用してください。
作成
構文
説明
ftpobj = ftp(
は、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Windows® オペレーティング システムで実行される FTP サーバーに接続するために host
,username
,password
,Name,Value
)"System"
を "Windows"
として指定したり、接続モードをパッシブ モードからアクティブ モードに変更するために "LocalDataConnectionMethod"
を "active"
として指定したりできます。
入力引数
FTP サーバーのホスト名。string スカラーまたは文字ベクトルとして指定します。
FTP サーバーの既定のポート番号は 21 です。接続の代替ポート番号を指定するには、host
にコロン (:
) とポート番号を追加します。
通常、サーバーのホスト名は "ftp.example.com"
のように ftp
で始まります。ただし、この方式は慣習であり、技術上の要件ではありません。たとえば、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 接続を確立するためのモードは 2 種類あります。最新の FTP 実装の大半は passive
モードを使用しますが、一部の古い種類のサーバーに接続する場合に active
モードの指定が必要となることがあります。
"passive"
— マシンは両方のチャネルを確立します。コマンド チャネルを確立した後、マシンは FTP サーバーがポートをリッスンするよう要求します。これにより、マシンがそのポートに接続できるようになります。"active"
— マシンはコマンドのチャネルを確立しますが、データのチャネルは FTP サーバーが確立します。アクティブ モードは、マシンがファイアウォールで保護されていて、外部ソースからの承認されていないセッション要求が許可されていない場合などに問題となることがあります。
リモート サーバーから日付を読み取るロケール。"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" | 簡体字中国語 | 中国 |
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
FTP サーバーの転送モード。"Mode"
と "binary"
または "ascii"
で構成される名前と値の引数として指定します。ASCII モードは、HTML ページやリッチ テキスト形式 (RTF) ファイルなどのテキスト ファイルに使用します。バイナリ モードは、実行可能ファイルや zip アーカイブなどの非テキスト ファイルに使用します。
FTP オブジェクトの作成後に転送モードを変更するには、関数 ascii および binary を使用します。さまざまなタイプのファイルを転送するためにモードの変更が必要になることがあります。転送モードの設定は、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 (Secure Sockets Layer) と呼ばれることもあり、クライアントとサーバー間の通信を暗号化するセキュリティ プロトコルです。
メモ
セキュリティについての考慮事項: ワークフローのセキュリティを強化するために、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 セッションの終了時に、接続を閉じます。
まず、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: "/" 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)
FTP サービスは National Centers for Environmental Information (NCEI、米国環境情報センター) により提供されています。NCEI の利用規約は、NCEI Privacy Policy, Disclaimer, and Copyright を参照してください。
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: "/" CertificateFilename: "default" ConnectionTimeout: 5 min TransferTimeout: Inf sec
FTP サービスは National Centers for Environmental Information (NCEI、米国環境情報センター) により提供されています。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.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の 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)