2016-05-16 53 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)); 
       } 
      } 

是不是有史以来最好的解决方案,但它确实工作。