SSISを使用してftpでディレクトリ間でファイルを転送するにはどうすればよいですか?
ファイルを削除して再アップロードできることはわかっていますが、もっと簡単な方法はありますか?
作業を終えたファイルを「アーカイブ」フォルダに転送したい。
理論的な答えは、ファイルの名前を変更 (移動) するには、コマンド RNFR (名前の変更元)/RNTO (名前の変更先) の組み合わせを使用することです。FTP セッション内で、次のようなコマンドを発行します。
ftp> rnfr /src/test/done.txt
ftp> rnto /src/test/Archive/done.txt
z/OS ftp サーバーに接続する Windows コマンドライン FTP クライアント (system32\ftp.exe) を使用してテストした結果、クライアントは RNFR/RNTO がInvalid command
Windows クライアントは、シートの下で RNFR/RNTO を発行しているように見える名前変更メソッドを実装しています。
単純な名前変更は次のようになります
ftp> rename empty.txt e.txt
350 RNFR accepted. Please supply new name for RNTO.
250 /src/test/empty.txt renamed to /src/test/e.txt
ただし、ディレクトリの下に移動することはできませんでした
ftp> rename empty.txt Archive
350 RNFR accepted. Please supply new name for RNTO.
550 RNTO fails: /src/test/Archive is a directory.
ftp> rename empty.txt Archive/
350 RNFR accepted. Please supply new name for RNTO.
550 RNTO fails: /src/test/Archive/ is a directory.
ftp> rename empty.txt Archive/emp.txt
350 RNFR accepted. Please supply new name for RNTO.
550 Renaming attempt failed. Rc was 111
これがクライアント実装またはサーバー (またはその両方) の失敗であるかどうかはわかりません。または、資格情報に対するアクセス許可のセットが不十分である可能性があります。
コマンドラインで名前の変更を機能させるために必要な手順は、発行するコマンドのセットと同じになります。組み込みの を使用している場合は、FTP Task
使用できる名前の変更がないことがわかります。また、これがツールボックスの中で最も厄介なタスクの 1 つであることに気付くかもしれません。代わりに、Windows FTP クライアント用のコマンド ファイルを使用するか、.NET FTP ライブラリを使用することを強く推奨します。