SFTPプロトコルを使用してリモートファイルにアクセスできます。
該当要素: | 任意の場所 |
カテゴリ: | データアクセス |
有効なファイル参照名を指定します。
ヒント | ファイル参照名と外部ファイルの関連付けは、SASセッション終了まで維持されるか、または他のFILENAMEステートメントで関連付けの変更や関連付けの取り消しを実行するまで維持されます。ファイルに対するファイル参照名は必要に応じて何度でも変更できます。 |
このアクセス方式を指定すると、SFTP(Secure File Transfer Protocol)を使用したファイルの読み込みや書き込みを、OpenSSH SSHDサーバーが稼働しているネットワーク上のホストコンピュータとの間で実行できるようになります。
読み込みまたは書き込みの対象となる外部ファイルの物理名を指定します。物理名には動作環境で判別できる名前を指定します。
動作環境 | 外部ファイルの物理名を指定する方法の詳細については、各動作環境向けのSASドキュメントを参照してください。 |
ヒント | ファイルの転送を実行するのではなく、ディレクトリリストの取得などのタスクを実行する場合は、外部ファイル名を指定する必要はありません。ファイル名のかわりに、引用符のみをステートメントに指定してください。 |
ファイル参照名には、1つのファイルまたは集約記憶域を関連付けることができます。 |
ファイル属性や属性の処理など動作環境固有の詳細情報を指定します。
動作環境 | SFTPオプションの詳細については、各動作環境向けのSASドキュメントを参照してください。 |
参照項目 | SFTPオプション |
SFTPコマンドを含むバッチファイルの絶対パスとファイル名を指定します。これらのコマンドはSFTPアクセス方式の実行時にサブミットされます。バッチファイルの処理が終了すると、SFTP接続は終了します。
要件 | 指定するパスは一重引用符で囲む必要があります。 |
ヒント | バッチファイルの処理が終了すると、SFTP接続が終了するため、ファイル名の割り当てが利用できなくなります。後続のDATAステップの処理でFILENAME SFTPステートメントが必要になる場合は、FILENAME SFTPステートメントを再度指定する必要があります。 |
例 | バッチファイルを使用する |
作業ディレクトリを変更するコマンドを発行します。この作業ディレクトリでは、指定したdirectoryへのファイルの転送を実行します。
情報メッセージをSASログに書き込みます。
ディレクトリファイルにアクセスできるようにします。external-file引数にディレクトリ名を指定してください。指定したホストに対して有効なディレクトリ構文を使用する必要があります。
操作 | CDオプションとDIRオプションは相互に排他的です。両方を指定すると、SFTPアクセス方式ではCDオプションが無視されます。また、情報メッセージがログに書き込まれます。 |
ヒント | SFTPを使用してディレクトリを作成する場合、DIRオプションとNEWオプションを組み合わせて使用します。ディレクトリがすでに存在する場合、NEWオプションは無視されます。 |
NEWオプションを使用せずに無効なディレクトリを指定すると、新しいディレクトリは作成されず、エラーメッセージが表示されます。 |
このhostには、OpenSSH SSHDサーバーが稼働しているリモートホストのネットワーク名を指定します。
server.pc.mydomain.com
)またはコンピュータのIPアドレス(例:2001:db8::
)のどちらかを指定できます。
このlreclには、データの論理レコード長を指定します。
デフォルト | 256 |
操作 | かわりに、XisError: No pubcode in link data found for lesysoptsrefを使用すると、グローバルな論理レコード長を指定できます。SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用する場合、LRECLのデフォルト値は256になります。 |
SFTPサーバーにLSコマンドを発行します。LSオプションを指定すると、作業ディレクトリの内容がファイル属性を持たないレコードとして返されます。
制限事項 | LSオプションでは、.xAuthorityなどのファイルの先頭にあるピリオドは表示されません。 |
操作 | LSオプションとLSAオプションは相互に排他的です。両方のオプションを指定すると、LSAオプションが優先されます。 |
ヒント | ファイルのサブセットのリストを返すには、LSオプションの他にLSFILE=オプションを使用します。 |
SFTPサーバーにLSコマンドを発行します。LSAオプションを指定すると、作業ディレクトリのすべての内容がファイル属性を持たないレコードとして返されます。
操作 | LSオプションとLSAオプションは相互に排他的です。両方のオプションを指定すると、LSAオプションが優先されます。 |
.xAuthorityなどの先頭のピリオドを使用せずにファイルを表示するには、LS=オプションを使用します。 | |
ヒント | ファイルのサブセットのリストを返すには、LSAオプションの他にLSFILE=オプションを使用します。 |
LSオプションと組み合わせて使用します。作業ディレクトリからファイルのサブセットのリストを要求するために使用する文字列を指定します。文字列は一重引用符で囲みます。
制限事項 | LSFILE=オプションは、LSまたはLSAオプションが指定されている場合にのみ使用できます。 |
ヒント | 'character-string 'の一部にワイルドカードを指定できます。 |
例 | 次のステートメントでは、 salesで始まり、 sasで終了するすべてのファイルをリストします。filename myfile sftp '' ls lsfile='sales*.sas'
other-sftp-options; |
SFTPコマンドのMGETと同じように複数のファイルを転送します。
ヒント | 転送処理全体が1つのファイルとして処理されます。ただし、新しいファイルの転送を開始するときに、EOV=変数が1に設定されます。 |
DIRオプションの使用時に、SFTPでディレクトリを作成するように指定します。
制限事項 | z/OSでは、NEWオプションは使用できません。 |
ヒント | ディレクトリがすでに存在する場合、NEWオプションは無視されます。 |
ポート番号や詳細などのSFTP構成オプションを指定します。
要件 | FILENAME SFTPステートメントを含むコードを、Windowsワークスペースサーバーで実行されているSAS Enterprise Guideからサブミットする場合、OPTIONSまたはOPTIONSXオプションを使用して認証を指定する必要があります。 |
注 | OPTIONS文字列の情報を隠す必要がある場合は、OPTIONSXオプションを使用します。 |
参照項目 | SAS Enterprise GuideでOPTIONSXパラメータに指定した認証を使用してWindows PUTTYクライアントとSSHDサーバーを接続する |
秘密鍵やパスフレーズなどのSFTP構成オプションを指定します。option-stringの情報はすべて、SASログへの書き込み時に隠されます。
要件 | FILENAME SFTPステートメントを含むコードを、Windowsワークスペースサーバーで実行されているSAS Enterprise Guideからサブミットする場合、OPTIONSまたはOPTIONSXオプションを使用して認証を指定する必要があります。 |
OPTIONSX文字列のパスフレーズに1つ以上のスペースが含まれる場合、そのパスフレーズを二重引用符で囲む必要があります。また、OPTIONSX文字列は一重引用符で囲む必要があります。 | |
ヒント | パスフレーズは-pw パラメータを使用して渡されます。
|
参照項目 | SAS Enterprise GuideでOPTIONSXパラメータに指定した認証を使用してWindows PUTTYクライアントとSSHDサーバーを接続する |
PATHまたは$PATHなどの検索パスにインストールされていない場合、SFTP実行可能ファイルの場所を指定します。
ヒント | PATHまたは$PATHの検索パスからアクセス可能なディレクトリに、OpenSSHの “SFTP”実行可能ファイルまたはPUTTYの“PSFTP”実行可能ファイルをインストールすることをお勧めします。 |
このrecfmには、次の2つのレコード形式のどちらかを指定します。
固定長レコード形式です。そのため、LRECLサイズのすべてのレコードには区切り文字となる改行が含まれていません。
操作 | SAS 9.4では、グローバルLRECLシステムオプションのデフォルト値は32767です。固定長レコード(RECFM=F)を使用している場合、LRECLのデフォルト値は256になります。 |
ストリームレコード形式です。データはイメージ(バイナリ)モードで転送されます。
操作 | 読み込むデータ量は、現在のLRECLの値またはINFILEステートメントに指定したNBYTE=変数の値で制御されます。NBYTE=オプションには、読み込まれるデータ量に等しくなる変数を指定します。このデータ量は、LRECLに指定した値に等しいか、それ以下の値にする必要があります。 |
参照項目 | INFILEステートメントのNBYTE=オプション。 |
可変長レコード形式(デフォルト設定)です。この形式ではレコードの長さが異なります。また、レコードは改行で区切られます。データはイメージ(バイナリ)モードで転送されます。
デフォルト | V |
ユーザー名を指定します。
要件 | Windowsホスト上のPUTTYクライアントでは、usernameを指定する必要があります。 |
ヒント | 公開鍵認証方式を使用する場合、LINUXまたはUNIXのホスト上ではusernameを指定する必要はありません。 |
リモートのSSHDサーバーに接続する場合、SSHエージェントを使用する公開鍵認証方式を使用することをお勧めします。 |
SFTPの応答時間をミリ秒で指定します。
デフォルト | 1,500ミリ秒 |
ヒント | タイムアウトメッセージがログに出力される場合は、WAIT_MILLISECONDSオプションを使用して応答時間を長く設定します。 |
get
コマンドやput
コマンドと同じように、SFTPアクセス方式を使用するとファイルのアップロードやダウンロードを実行できます。ただし、この方式では最初にファイルをシステム上に保存せずに、SASセッションに直接読み込みます。
test.dat
というファイルを読み込みます。
filename myfile sftp '/users/xxxx/test.dat' host="unixhost1"; data _null_; infile myfile truncover; input a $25.; run;
test.dat
というファイルを読み込みます。
filename myfile sftp '/users/xxxx/test.dat' host="unixhost1" options="-oPort=4117"; data _null_; infile myfile truncover; input a $25.;; run;
userid
を使用してWindows PUTTYクライアントをSSHDサーバーに接続した後、SFTPアクセス方式を使用してtest.dat
というファイルに書き込みます。
filename outfile sftp '/users/xxxx/test.dat' host="unixhost1" user="userid"; data _null_; file outfile; do i=1 to 10; put i=; end; run;
test.dat
とtest2.dat
を読み込みます。
filename infile sftp '/users/xxxx/' host="unixhost1" dir; data _null_; infile infile(test.dat) truncover; input a $25.; infile infile(test2.dat) truncover; input b $25.; run;
sftpcmds
が実行されます。
filename process sftp ' ' host="unixhost1" user="userid" batchfile="c:/stfpdir/sftpcmds.bat"; data _null_; infile process; run;
test.dat
というファイルを書き込みます。公開鍵認証は、OPTIONSXパラメータに指定した秘密鍵とパスフレーズを使用して行われます。OPTIONSX文字列値は、SASログではX文字で隠されます。パスフレーズは-pw
パラメータを使用して渡されます。パスフレーズにスペースが含まれる場合、そのパスフレーズを二重引用符で囲む必要があります。また、OPTIONSX文字列は一重引用符で囲む必要があります。filename outfile sftp '/users/xxxx/test.dat' host="unixhost1" optionsx='-i C:\privatekey.ppk -pw "pass phrase"' user="userid" ; data _null_; file outfile; do i=1 to 10; put i=; end; run;