2016-05-16 41 views
1

可以使用Laravel文件系統執行以下代碼片段嗎?使用laravel文件系統將完整目錄從app root上傳到S3?

 try { 
      $s3 = AWS::createClient('s3'); 
      $s3->uploadDirectory(env('AMAZON_LOCATION'), env('AMAZON_BUCKET'), $this->key_prefix, [ 
       'params'  => [ 'ACL' => 'public-read'], 
       'concurrency' => 20, 
       'debug'  => true 
      ]); 
     }catch (S3Exception $e){ 

     } 

我只是不喜歡使用包多,但我不能設法複製與laravel文件系統相同的功能,有沒有人做過,或對如何做一個好指針?

回答

0

惟一可行的辦法,我可以拿出爲以下幾點:

  $files = File::files('/directory/path')); 
      if (sizeof($files) > 0) { 
       $disk = Storage::disk('api_s3'); 
       foreach ($files as $file) { 
        $path_info = pathinfo($file); 
        $file_name = $path_info[ 'filename' ] . '.' . $path_info[ 'extension' ]; 
        $disk->put($file_name, file_get_contents($file)); 
       } 
      } 

是不是有史以來最好的解決方案,但它確實工作。