Einige PHP-Codes zum Batch-Download von in der Datenbank gespeicherten Video-on-Demand-Videos und Alibaba Cloud OSS-Dateien auf den lokalen Computer

Vor kurzem gab es eine Geschäftsanforderung, die die Videodateien der Datenbank sichern muss. Ich habe diesen Code geschrieben, um die On-Demand-Videodateien der Datenbank mit einer 5-T-Festplatte zu kopieren, die Verzeichnisstruktur im ursprünglichen OSS gespeichert zu halten, und führen Sie ein lokales Programm aus, um die Videodateien auf dem lokalen Computer zu sichern (in TP geschrieben. Der Pfad der PHP-Codekonfiguration lautet: http://localhost:8181/api/crontab.video/downloadVod), der Computer wird automatisch aktualisiert. und nachdem es 2 Tage lang gelaufen war, wurden schließlich mehr als 2T Dateien heruntergeladen.Der folgende Kerncode dient nur als Referenz.

 /** On-Demand-Video lokal speichern
  * /api/crontab.video/downloadVod
  */

 Funktion downloadVod(){
     set_time_limit(0);
     echo date('Ymd H:i:s').'<br>';
     $where = ['cate_id'=>'0','is_audit'=>['in',[0,1]],'ctime'=>['lt',gmtime()-60]];
     $video = Model('video')->where($where)->field('video_id,photo,video_url,vod_url')->order('video_id asc')->limit(2)->select() ;
     $pfad = "./Uploads/video";
     $pfad = "H:/YTS";
     if(!is_dir($path)){
         @mkdir($path, 0777,true); echo 'ok';
     }
     $neue_datei = '';
     foreach($video als $key=>$val){
         $photo = explode('|',$val['photo']);
         $vod_url = $val['vod_url'];
$video_url = $val['video_url'];
if ( $vod_url != '') {
   $vod_url = str_replace('https', 'http', $vod_url);
   $url = $this->fopen_url($vod_url);
   $videoPath = parse_url($video_url)['Pfad'];
   $new_file = $Pfad . dirname($videoPfad) . "/";
   if (!file_exists($new_file)) {
      //Überprüfen Sie, ob es einen solchen Ordner gibt, wenn nicht, erstellen Sie ihn und geben Sie ihm die höchste Berechtigung
      @mkdir($new_file, 0777, wahr);
   }
   $neue_Datei = $neue_Datei . Basisname ($video_url); //getFileExt($vod_url)
   file_put_contents($neue_Datei, $url);
}

         $ret = Model('video')->where(array('video_id'=>$val['video_id']))->update(['cate_id'=>1]);
         if($ret === false){
             return 'Herunterladen und Speichern fehlgeschlagen.';
         }
     }
     echo '<br><br>downloadCoverDone:'.$new_file.' | '.M()->getLastSql();

     echo '<meta http-equiv="refresh" content="2;url="http://localhost:8181/api/crontab.video/downloadVod"';
 }

Guess you like

Origin blog.csdn.net/happyzhlb/article/details/126438044