🤢
【Laravel】SFTPをLaravelで使うために【備忘録】
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