🤢

【Laravel】SFTPをLaravelで使うために【備忘録】

2021/02/16に公開

LaravelのSFTP導入についていろんな情報があったので、自分がうまくいったやつを書きます。プログラミング素人+おじさんなので書いておかないと忘れてしまうので、自分のためです。異論は教えてください。

Laravel 6.1
PHP 7.3

その1:league/flysystem-sftpの導入

日本語ドキュメントにも載っていますが、league/flysystem-sftpが必要です。composerを使ってインストールします。

composer require league/flysystem-sftp

その2:filesystemsの設定

filesystems.phpに接続先の情報を設定します。

config/filesystems.php
'disks' => [
    'oreno_sftp' => [
        'driver' => 'sftp',
        'host' => '(ホスト名)',
        'username' => '(ユーザー名)',
        'password' => '(パスワード)',
	
	// 必須なのはここまで
	
        'root' => '/var/www/hoge/',
	'privateKey' => '(プライベートキーのパス)',
    ],
],

ちなみにFTPの場合は

config/filesystems.php
'disks' => [
    'oreno_sftp' => [
        'driver' => 'ftp',

ここを変えればOK。

その3:Storageファサードを使う

ファイルを置きたいときは

Storage::disk('oreno_sftp')->put($file_path, $contents);

$file_pathはfilesystemsで設定したroot以降のやつね(もし設定していたら)。
ファイルを取得したいときは

$file = Storage::disk('oreno_sftp')->get($file_path);

これでOK。

Discussion