public static function setDataLog($type, $return = '')
 {
     $logs = new ScheduleLog();
     $logs->type = $type;
     $logs->return = $return;
     $logs->save();
 }
 private function purgerBucket($s3_name)
 {
     $disk = Storage::disk($s3_name);
     $day_backup = (int) Config::get("app.aws.backup_date");
     $time = time();
     $obj_delete = [];
     $return = '';
     $command = $disk->getDriver()->getAdapter()->getClient()->listObjects(['Bucket' => Config::get("filesystems.disks.{$s3_name}.bucket"), 'Prefix' => '']);
     foreach ($command as $key => $object) {
         if ($key === 'Contents') {
             foreach ($object as $k => $file) {
                 $last_modify = strtotime($file['LastModified']) + $day_backup * 24 * 60 * 60;
                 if ($last_modify < $time && $file['Size']) {
                     $obj_delete[]['Key'] = $file['Key'];
                     $return[] = $file['Key'];
                 }
             }
         }
     }
     if (!empty($obj_delete)) {
         $disk->getDriver()->getAdapter()->getClient()->deleteObjects(['Bucket' => Config::get("filesystems.disks.{$s3_name}.bucket"), 'Delete' => ['Objects' => $obj_delete, 'Quiet' => true]]);
     }
     $type = "Purger for AWS S3 Buckets '{$s3_name}' complited.";
     if (!empty($return)) {
         $return = 'Files deleted: ' . implode(', ', $return);
     }
     ScheduleLog::setDataLog($type, $return);
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle(Schedule $schedule)
 {
     $s3_first = Config::get("app.aws.s3_bucket_sync_first");
     $s3_second = Config::get("app.aws.s3_bucket_sync_second");
     $s3_sync = Config::get("app.aws.s3_sync_profile");
     $schedule->exec("aws s3 sync s3://{$s3_first} s3://{$s3_second} --delete --profile {$s3_sync}");
     $type = "AWS S3 SYNC completed.";
     ScheduleLog::setDataLog($type);
 }
 public function getIndex()
 {
     $data = ScheduleLog::getLogs(15);
     return view('logs.schedule_log', ['data' => $data]);
 }