8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

気づきの種まき~SFTP編~

Last updated at Posted at 2019-12-16

身内向けで恐縮ですが、今後の気づきの種まき

いつも通り、データを送るような処理をレビューして、テストをしていたある日。
送るファイルの指定:OK、終了ファイルの指定:OK、ディレクトリの指定:OK・・・確認は順調だ。

「よし、テストしちゃうぞ! おや、、、様子がおかしい。」
「何故かうまくいかない… なんでだろう… んー」

  • 前提の確認漏れ

 そもそも、要件には『SFTP』と記載あるにもかかわらず、FTPで実装を進めていた。(ちゃんと読めよ)

 *FTP:サーバーへファイルをトランスファーするためのプロトコルのことをいい、暗号化はしていない。[1]
 *SFTP:FTPで転送される情報を「SSH(Secure Shell)」を利用して暗号化するプロトコルのことです。[2]

 要するに、FTPは何も安全に関する加工せず送っているため、加工しているSFTPの方が安全な連携

  • 突然ぶつかった壁

 ネット上にある、phpでSFTP送信を試みる処理、ライブラリがいくつかあった。
 ①https://qiita.com/taiba/items/6a1cfd53f0fdcfce14bf
 ②https://weblabo.oscasierra.net/php-phpseclib-2/

 上記を参考に②を利用して作ってみた。

 よし、これなら行けるだろう。テスト実施。うまくいかない。
 エラーとしては、タイムアウトし続け、なぜだなぜだと考えた。

 teratermの様なファイル転送ツールでは、問題なく繋がった。
 きっと書き方が悪いのだろう。修正を繰り返すもなかなかうまくいかない。

 社内で少し、事例を聞いたところ、SFTP接続するには、インフラの設定が必要とのことだ。

あとがき

  • 何か外部と連携するものを作るときは、ちゃんと仕様書の確認をすること
  • 目的を達成するために別の確認手段があったら試すこと(今回でいうteratermのログイン確認)
  • 確認を行った上で、事象を周囲のメンバー、先輩に確認すること

そうすれば、自ずと答えにもたどり着き、自らの知見と経験になります。
定期的に予期せぬ壁にぶつかっていきたいですね。(トリッキーな内容でもなかったけど、思い出に)

以上


引用・参考
[1][2]:https://liginc.co.jp/398039

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?