可以使用Laravel文件系统执行以下代码段吗?
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 :(得分: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 ) );
}
}
不是最好的解决方案,但确实有效。