Laravel连接到SFTP

yc0p9oo0  于 2023-01-03  发布在  其他
关注(0)|答案(1)|浏览(105)

我有"league/flysystem-sftp": "~1.0",我尝试连接到服务器,数据是正确的(如果我尝试一些错误的数据,我会得到一个错误),但我没有得到任何相关的信息,例如,如果一个文件存在,或如何访问它。

$exists = Storage::disk('sftp')->getDriver()->getAdapter();
dd($exists);

League\Flysystem\Sftp\SftpAdapter {#2189 ▼
  #connection: null
  #port: 22
  #hostFingerprint: null
  #privateKey: ""
  #useAgent: false
  #usePingForConnectivityCheck: false
  -agent: null
  #configurable: array:16 [▶]
  #statMap: array:2 [▶]
  #directoryPerm: 484
  -passphrase: null
  #host: "MY HOST IP"
  #ssl: false
  #timeout: 90
  #passive: true
  #separator: "/"
  #root: null
  #permPublic: 484
  #permPrivate: 448
  #systemType: null
  #safeStorage: League\Flysystem\SafeStorage {#2184 ▶}
  #enableTimestampsOnUnixListings: false
  #pathPrefix: null
  #pathSeparator: "/"
}

如果对“local”使用相同的方法,则得到#pathPrefix: "/home/vagrant/lmsx/storage/app/"

文件系统.php

'sftp' => [
    'driver' => 'sftp',
    'host' => env('SFTP_HOST'),
    'username' => env('SFTP_USERNAME'),
    'password' => env('SFTP_PASSWORD'),
    'privateKey' => env('SFTP_PRIVATE_KEY'),
    'port' => 22,
],
mlmc2os5

mlmc2os51#

要检查文件是否存在,可以使用

$exists = Storage::disk('sftp')->exists('file.jpg');

如果您要求访问它,我猜您想下载它,请尝试这个

Storage::disk('local')->put(
  $content, 
  Storage::disk('sftp')->get('file.jpg')
);

相关问题