Laravel文件系统覆盖

时间:2017-03-22 20:22:16

标签: laravel laravel-5.2

我有一个创建LogFile对象(我自己的模型)并将其写入文本文件的函数。为此,我使用的是Laravels Filesystem。我首先在filesystems.php

中设置我的磁盘
'logFile' => [
    'driver' => 'local',
    'root'   => storage_path('logFile'),
],

然后我创建了使用此存储的函数

public function setlogFile(Request $request)
{
    $logFile = new LogFile();
    $logFile->created_at = new \DateTime();;
    $logFile->ipAddress = filter_var($request->ip(), FILTER_VALIDATE_IP);

    try {
        if(Storage::disk('logFile')->has('logFile.txt')) {
            $size = Storage::disk('logFile')->size('logFile.txt');
            if($size > 2000000) {
                Storage::disk('logFile')->move('logFile.txt', 'archive/' . time() . uniqid() . '-logFile.txt');
            }
        } else {
            Storage::disk('logFile')->put('logFile.txt', $logFile);
        }

        if (Storage::disk('logFile')->append('logFile.txt', $logFile)) {
            return response()->json("Success", 200);
        } else {
            return response()->json(['error' => 'something_went_wrong'], 500);
        }
    } catch (\Exception $e) {
        var_dump($e);
    }
}

应该发生的是这个。

我首先获取时间戳和请求的IP,然后创建我的对象。

然后检查以确保我的存储位置中有一个名为logFile.txt的文件。然后我得到这个文件的大小。如果它超过2MB,我将其移动到新位置并创建一个新文件。如果它小于2 MB,我将我的对象追加到它。

现在一切似乎都运转良好。该文件在每个请求上都附加了一行新数据。我的问题似乎是每天至少一次,文件似乎从头开始。我不知道是不是因为它已达到2MB,但似乎没有任何东西保存在存档文件夹中。

我只是想知道这段代码是否有任何问题导致此问题?我有点困惑,为什么会发生这种情况,因为它应该移动文件?

由于

0 个答案:

没有答案