Car*_*ora 6 storage sftp laravel
我正在使用 Storage:SFTP (league/flysystem-sftp) 将一些文件上传到外部服务器。一切顺利,但有一个小问题:文件以 0644 (-rw-r--r--) 权限上传。我尝试在 put 方法上使用“public”选项作为文档中的示例,例如
Storage::disk('remote-sftp')->put($filename, $contents, 'public');
Run Code Online (Sandbox Code Playgroud)
但如果失败返回 FALSE 并且不上传文件。
如果我删除 'public' 参数,一切顺利,但文件权限错误。
有没有办法将上传的文件权限设置为0666之类的?
最后的解决方案是结合 Alpy 的答案和配置。调用 setVisibility() 没有失败,但将权限保留在 0644 中。深入研究 FTP/SFTP 驱动程序发现“public”权限有一个模式,可以使用“permPublic”键在配置中分配,因此写入配置/文件系统。 php 所需的八进制权限,它按预期工作。
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'remote-sftp' => [
'driver' => 'sftp',
'host' => '222.222.222.222',
'username' => 'myuser',
'password' => 'mypassword',
'visibility' => 'public',
'permPublic' => 0766, /// <- this one did the trick
// 'port' => 22,
'root' => '/home',
// 'timeout' => 30,
],
],
Run Code Online (Sandbox Code Playgroud)
];
| 归档时间: |
|
| 查看次数: |
5673 次 |
| 最近记录: |