sftp
説明
SFTP 接続オブジェクトを生成する関数 sftp を呼び出して、SFTP サーバーに接続します。サーバー上の特定の SFTP アカウントにアクセスするには、ホストとユーザーを指定します。次に、SFTP オブジェクトを使用して、ファイルをアップロード、ダウンロード、および削除します。サーバー上で異なるフォルダーの作成、削除、およびそのフォルダーへの移動もできます。接続を閉じるには、関数 close を使用します。
SFTP は安全なプロトコルであるため、SFTP オブジェクトでは、ユーザー名、パスワード、および SFTP サーバーとの間でダウンロードまたはアップロードされるすべてのデータが暗号化されます。
作成
構文
説明
s = sftp( は、指定された場所にあるキー ファイルを使用します。host,user,"PublicKeyFile",publickeyfile,"PrivateKeyFile",privatekeyfile)
s = sftp(___, は、前述の構文の入力引数の任意の組み合わせに加え、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Name,Value)"ServerSystem" の値に "Windows" を指定して、Windows® オペレーティング システムで実行される SFTP サーバーに接続できます。
入力引数
SFTP サーバーのホスト名。string スカラーまたは文字ベクトルとして指定します。
SFTP サーバーの既定のポート番号は 22 です。接続の代替ポート番号を指定するには、host にコロン (:) とポート番号を追加します。
通常、サーバーのホスト名は "sftp.example.com" のように "sftp" で始まります。ただし、この方式は慣習であり、技術上の要件ではありません。たとえば、s = sftp("www.example.com:22") は、サーバー www.example.com が SFTP サービスを提供するように構成されていれば、ポート番号 22 への匿名接続を開きます。
構成データをハード コーディングする代わりに、この機密情報を MATLAB® Vault または .env ファイルに格納して取得できます。詳細については、Keep Sensitive Information Out of Codeを参照してください。
例: s = sftp("sftp.example.com").
SFTP サーバー上の承認済みアカウントの名前。string スカラーまたは文字ベクトルとして指定します。SFTP オブジェクトは user をプレーン テキストとして送信します。
指定したアカウントのパスワード。string スカラーまたは文字ベクトルとして指定します。SFTP オブジェクトは password を暗号化テキストとして送信します。
セキュリティを強化するために、パスワードなどの機密情報はハードコーディングしないでください。詳細については、Keep Sensitive Information Out of Codeを参照してください。
例: "Password","PaSsWoRd123"
SFTP 認証用の公開鍵ファイル。string スカラーまたは文字ベクトルとして指定します。公開鍵ファイルの既定の場所は、オペレーティング システムによって異なります。
Linux および MacOS では、公開鍵ファイルの既定の場所は
$HOME/.ssh/id_rsa.pubです。Windows では、公開鍵ファイルの既定の場所は
%USERPROFILE%\.ssh\id_rsa.pubです。
例: "PublicKeyFile","/Users/abc/sshKeys/keys.pub"
SFTP 認証用の秘密鍵ファイル。string スカラーまたは文字ベクトルとして指定します。秘密鍵ファイルの既定の場所は、オペレーティング システムによって異なります。
Linux および MacOS では、秘密鍵ファイルの既定の場所は
$HOME/.ssh/id_rsaです。Windows では、秘密鍵ファイルの既定の場所は
%USERPROFILE%\.ssh\id_rsaです。
例: "PrivateKeyFile","/Users/abc/sshKeys/keys"
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: s = sftp(host,user,ServerSystem="Windows")
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: s = sftp(host,user,"ServerSystem","Windows")
dir 出力日付フィールドで使用する型。"datetime" または "text" として指定します。
R2024a 以降
ログイン時にリモートの現在の作業フォルダーとして使用するフォルダー。string スカラーまたは文字ベクトルとして指定します。
例: StartingFolder="home/jsmith/birds"
SFTP サーバー上で実行しているオペレーティング システムのタイプ。"unix" または "Windows" として指定します。
リモート サーバーから日付を読み取るロケール。string スカラーまたは文字ベクトルとして指定します。
ServerLocale の値は、 の形式の文字ベクトルまたは string スカラーにすることができます。xx_YYxx は 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 コマンド出力の解析方法。関数ハンドルとして指定します。既定値は、サーバーのオペレーティング システムに応じて @matlab.io.ftp.parseDirListingForUnix または @matlab.io.ftp.parseDirListingForWindows のいずれかになります。
カスタム関数ハンドルも指定できます。カスタム関数ハンドルには 3 つの入力が必要です。
ディレクトリ要素のリスト。string ベクトルとして指定します。
サーバーのロケール。string スカラーとして指定します。
日付と時刻のデータのデータ型。
"datetime"または"text"として指定します。
カスタム関数ハンドルの出力は、m 行 1 列のサイズの構造体配列でなければなりません。m はフォルダー内の項目数です。構造体のフィールドは、関数 dir で返される構造体のフィールドと同じ name、isdir、bytes、date、datenum でなければなりません。これらのフィールドの詳細については、関数 dir のリファレンス ページを参照してください。
この名前と値の引数は、既定値ではエラーになり、dir の出力を解析できない場合に指定します。dir を参照するオブジェクト関数を使用するように、この引数を正しく指定する必要があります。
関数シグネチャ
カスタム書き込み関数は、ディレクトリ要素のリスト entries、サーバーのロケール serverLocale、および日付と時刻のデータのデータ型 datetimeType の 3 つの入力引数を受け入れなければなりません。
function listing = myFormatFcn(entries,serverLocale,datetimeType)関数の例
textscan への入力となる要素を cell 配列に結合します。struct を事前に割り当てます。textscan 出力から個々の部分を取得します。該当するフィールドへの入力を行う struct を作成します。
function listing = myFormatFcn(entries,serverLocale,datetimeType) 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); if datetimeType == "text" listing(ii).date = datestr(thisDate); else listing(ii).date = thisDate; end listing(ii).datenum = datenum(thisDate); end end
R2024b 以降
接続の最大許容時間。duration スカラーとして指定します。既定では、接続は 300 秒後に終了します。
R2024b 以降
転送の最大許容時間。duration スカラーとして指定します。値を指定しない場合、SFTP 転送はタイムアウトしません。
R2024b 以降
秘密鍵のパスフレーズ。string スカラーまたは文字ベクトルとして指定します。
R2024b 以降
証明書ファイル名。"default"、ルート証明書を含むファイルの名前と場所を示す string スカラーまたは文字ベクトルとして指定します。このファイルは、ヘッダー -----BEGIN CERTIFICATE----- とフッター -----END CERTIFICATE----- を含む Privacy-Enhanced Mail (PEM) 形式でなければなりません。
証明書ファイルの場所は、現在のフォルダー内または MATLAB パス上のフォルダー内でなければなりません。証明書ファイルへの絶対パスまたは相対パスを指定できます。MATLAB は、このファイルに含まれる証明書を使用して、HTTPS 接続用のサーバー証明書を検証します。HTTPS 接続のセキュリティはこのファイルの整合性に依存するため、このファイルを適切に保護してください。MATLAB は証明書または証明書ファイルを管理しませんが、PEM ファイルを管理するためにサードパーティ製のツールを使用できます。
CertificateFilename が "default" の場合、MATLAB はシステムによって提供された証明書ストアを使用してサーバー証明書を検証します。サーバー証明書の検証が失敗する場合、システム ブラウザーを使用して接続をチェックしてください。
接続の問題が発生した場合、次のいずれかのアクションを実行できます。
サーバー証明書の期限が切れているか取り消されている場合、Web サイトの所有者またはサーバー管理者に連絡してください。
ルート認証機関 (ルート CA) の証明書がない場合、
CertificateFilenameで示されたファイルにルート CA 証明書を追加してください。
オブジェクト関数
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 サーバー上のフォルダーの削除 |
例
サンプルの SFTP サーバーに接続します。
s = sftp("sftp.example.net","jsmith")
SFTP with properties:
Host: "sftp.example.net"
Username: "jsmith"
Port: 22
ServerSystem: "Windows"
DatetimeType: "datetime"
ServerLocale: "en_US"
DirParserFcn: @matlab.io.ftp.parseDirListingForWindows
RemoteWorkingDirectory: "/home/jsmith"SFTP オブジェクトを作成して SFTP サーバーへの接続を開きます。SFTP オブジェクトを使用して、ファイルをダウンロードし、サーバー上のサブフォルダーの内容をリストします。SFTP セッションの終了時に、接続を閉じます。
最初に、サンプルの SFTP サーバーに接続します。
s = sftp("sftp.example_galapagos.net","jsmith","Password","PaSsWoRd123")
SFTP with properties:
Host: "sftp.example_galapagos.net"
Username: "jsmith"
Port: 22
ServerSystem: "unix"
DatetimeType: "datetime"
ServerLocale: "en_US"
DirParserFcn: @matlab.io.ftp.parseDirListingForUnix
RemoteWorkingDirectory: "/home/jsmith"最上位フォルダーの内容をリストします。
dir(s)
air_quality fish insects README.txt birds INDEX.txt mammals reptiles climate index.html rainfall sftp.html
SFTP サーバーからファイル README.txt をダウンロードします。関数 mget は、現在の MATLAB® フォルダーにコピーをダウンロードします。
mget(s,"README.txt");関数 readlines を使用して、README.txt のコピーの内容を読み取ります。最初の 3 行を表示します。
readme = readlines("README.txt");
readme(1:3)ans = 4×1 string
" Welcome to the "
" Galapagos Research Institute Data Center "
" SFTP area"
関数 dir を使用してサブフォルダーの内容をリストします。
dir(s,"home/jsmith/birds")albatrosses ducks herons parrots avocets_stilts falcons kingfishers pelicans barn_owls flamingos mockingbirds penguins blackbirds frigatebirds nightjars pheasants boobies grebes northern_storm_petrels pigeons cardinal grosbeaks guineafowl osprey plovers cormorants gulls owls rails cuckoos hawks oystercatcher sandpipers
関数 cd を使用してサブフォルダーを変更します。cd からの出力は、現在の MATLAB フォルダーではなく、SFTP サーバー上の現在のフォルダーへのパスです。
cd(s,"home/jsmith/birds/herons")ans = "home/jsmith/birds/herons"
現在のフォルダーの内容をリストします。
dir(s)
documentation great_egret_data migration_patterns great_blue_heron_data green_heron_data nesting_behaviors
SFTP サーバーへの接続を閉じます。SFTP オブジェクトを削除するか、接続をタイムアウトさせても接続を閉じることができます。
close(s)
サンプルの SFTP サーバーに接続します。サーバーのロケールを英国と指定します。名前と値の引数 "DirParserFcn" を使用して、SFTP サーバーの LIST コマンド出力を Windows について解析するように指定します。
s = sftp("sftp.example_london.net","jsmith","Password",... "PaSsWoRd123","ServerLocale","en_GB","DirParserFcn",... @matlab.io.ftp.parseDirListingForWindows)
SFTP with properties:
Host: "sftp.example_london.net"
Username: "jsmith"
Port: 22
ServerSystem: "Windows"
DatetimeType: "datetime"
ServerLocale: "en_GB"
DirParserFcn: @matlab.io.ftp.parseDirListingForWindows
RemoteWorkingDirectory: "/home/jsmith"サンプルの SFTP サーバーに接続します。日付をテキストとして返すように SFTP オブジェクトに指示します。
s = sftp("sftp.example.net","jsmith","DatetimeType","text")
SFTP with properties:
Host: "sftp.example.net"
Username: "jsmith"
Port: 22
ServerSystem: "Windows"
DatetimeType: "text"
ServerLocale: "en_US"
DirParserFcn: @matlab.io.ftp.parseDirListingForWindows
RemoteWorkingDirectory: "/home/jsmith"dir 出力の日付プロパティを表示します。
d = dir(s); d.date
ans =
'03-Dec-2015'制限
SFTP オブジェクトはプロキシ サーバー設定をサポートしていません。
バージョン履歴
R2021b で導入名前と値の引数 ConnectionTimeout および TransferTimeout を使用すると、それぞれ接続と転送の最大許容時間を指定できます。
名前と値の引数 PrivateKeyPassphrase および CertificateFilename を使用すると、それぞれパスフレーズと証明書を使用してサーバーに接続できます。
SFTP サーバーに接続するときに、名前と値の引数 StartingFolder を使用してリモートの現在の作業フォルダーを指定できます。
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)