Laravel存储-访问被拒绝(不同的所有者)

vatpfxk5  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(151)

我有两个不同的点,我需要写入同一个日志文件,一个是concole命令文件,另一个是web控制器。
在这两种情况下,我使用append命令:

Storage::disk('local')->append($logfilePath, $content);

问题是文件是用权限664(-rw-r--r--)创建的,所以取决于创建文件的进程,另一个进程不能写入它。
有没有什么方法可以使用权限为666的Storage类创建文件?

vmjh9lq9

vmjh9lq91#

我在这里分享我找到的解决方案:
config/filesystems.php中,我将以下代码添加到local

'local' => [
            'permissions' => [
                'file' => [
                    'public' => 0666,
                    'private' => 0600,
                ],
                'dir' => [
                    'public' => 0755,
                    'private' => 0700,
                ],
            ],
        ],

创建新文件时,我指定希望文件具有的权限:

if (!Storage::disk('local')->exists($logFilePath)) {
    Storage::disk('local')->put($logFilePath, $content, 'public');
} else {
    Storage::disk('local')->append($logFilePath, $content);
}

请注意,在使用append时,您不能设置文件权限,即使它尚未创建。

相关问题