cfftpのSFTP接続について

cfftpタグには、secure属性があり、secure="yes"を指定し、sftpで接続するためのport(多くの場合はSSHポートの22となりますが、実際は接続先の環境を確認してください)、そして、認証(ユーザーやパスワード、他)を指定することで、SFTPでの転送を行うことができます。
https://help.adobe.com/ja_JP/ColdFusion/10.0/CFMLRef/coldfusion_10_cfmlref.pdf
(P.274 cfftp: セキュア FTP サーバー接続の確立と切断)

sftpでの接続は、厳密にはftpではなくSSHを介した処理となるため、cfftpの一部の処理には制限があります。以下のような制限や問題が確認されていますので、実際の実行が可能かどうかは事前に動作を確認されることをおすすめします。

  • passiveの設定は有りません
  • 接続に失敗した場合などのエラーメッセージが異なる場合があります
  • action="exists"は使用できません。
  • action="existsDir"や"existsFile"で存在しないディレクトリやファイルにアクセスした場合は、エラーが発生します
    • cfftp.returnValueによる判断ではなく、stoponerrorを"no" にして、その後の処理でcfftp.succeededを使用して条件分岐を行ってください
      【以下の例では、ディレクトリが存在しない場合にディレクトリを作成します】
       <cfftp connection="My_query" action="existsDir" directory="/virtual/test2" stoponerror="No">
       <cfif not cfftp.succeeded>
          <cfftp action="createDir" connection="My_query" directory="/virtual/test2" stoponerror="No">
          <cfoutput>ディレクトリ作成 :  #cfftp.returnvalue#</cfoutput>
       </cfif>
  • sftpで接続を行う際に、接続先の環境によってはログインが完了せずに処理が停滞する場合があります。この状態になる場合は、内部で使用されているライブラリのパラメーターを変更する回避が可能となります。問題が発生した場合は、下記のパラメータを cfftpの処理の前に追加してください。
    【参考URL】https://forums.adobe.com/thread/2506420
    • <cfset _jsch = CreateObject('java','com.jcraft.jsch.JSch')>
      <cfset _jsch.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password")>

 


記事公開日:2021年11月18日
最終更新日:2021年11月18日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.