Php Laravel AWS多端口负载

Php Laravel AWS多端口负载,php,laravel,amazon-s3,Php,Laravel,Amazon S3,有人能帮我重构代码以匹配第二个代码吗?问题是我更改了使用AWS S3multiportupLoad的方法,无法将文件放入bucket的子文件夹中。所有文件都在根级别上传,由于AWS多部分代码的结构,我无法为每个用户创建文件夹或创建文件夹 我尝试的是将“\subfolder”附加到“bucket”=>$\u ENV['AWS\u bucket'],但肯定不起作用 if ($request->hasFile('files_doctor')) { $pat

有人能帮我重构代码以匹配第二个代码吗?问题是我更改了使用AWS S3multiportupLoad的方法,无法将文件放入bucket的子文件夹中。所有文件都在根级别上传,由于AWS多部分代码的结构,我无法为每个用户创建文件夹或创建文件夹

我尝试的是将“\subfolder”附加到“bucket”=>$\u ENV['AWS\u bucket'],但肯定不起作用

if ($request->hasFile('files_doctor')) {
                    $patientFirstName = $request->patient_firstname;
                    $patientLastName = $request->patient_lastname;

                    //   Users name adding
                    $caseDir = auth()->user()->drname;
                    $caseDir = str_replace(' ', '', $caseDir);
                    $path = public_path('storage/uploads/chromedoctorefiles/'. $caseDir);

                    foreach ($request->file('files_doctor') as $s3file) {
                    $directory  = 'Case/'. $caseDir;
                    $contents = fopen($s3file, 'rb');
                    $s3patientFirstName = $request->patient_firstname;
                    $s3patientLastName = $request->patient_lastname;
                    $s3SavedOrigName = $s3file->getClientOriginalName();
                    $SendFileToS3 = $s3patientFirstName . '_' . $s3patientLastName . '_' . time() . $s3SavedOrigName;
                    // $disk = Storage::disk('s3');
                    $s3 = new S3Client([
                        'version' => 'latest',
                        'region'  => 'us-west-1'
                    ]);
                    $uploader = new MultipartUploader($s3, $contents, [
                        'bucket' => $_ENV['AWS_BUCKET'],
                        'key'    => $SendFileToS3,
                    ]);

                    try {
                        $result = $uploader->upload();
                        
                    } catch (MultipartUploadException $e) {
                        return $e->getMessage();
                    }
                    
                }

我想同时模拟两者的代码

 if ($request->hasFile('files_doctor')) {
                $patientFirstName = $request->patient_firstname;
                $patientLastName = $request->patient_lastname;

                //   Users name adding
                $caseDir = auth()->user()->drname;
                $caseDir = str_replace(' ', '', $caseDir);
                $path = public_path('storage/uploads/chromedoctorefiles/'. $caseDir);

           // Amazon checking folder 
           $directory  = 'Case/'. $caseDir;       

            foreach ($request->file('fileslab') as $s3file) {
            // Getting request names & extension
            $s3patientFirstName = $request->patient_firstname;
            $s3patientLastName = $request->patient_lastname;
            $s3SavedOrigName = $s3file->getClientOriginalName();
            $SendFileToS3 = $s3patientFirstName . '_' . $s3patientLastName . '_' . time() . $s3SavedOrigName;
           $contents = file_get_contents($dbfile->getRealPath());
            $path = Storage::disk('s3')->put($directory. '/' .$SendFileToS3, $contents);

            if (!Storage::disk('s3')->exists($directory)){
                Storage::disk('s3')->makeDirectory($directory);
                $path = Storage::disk('s3')->put( $directory. '/' .  $SendFileToS3, $contents );
            
            }else{
                 $path = Storage::disk('s3')->put( $directory. '/' .$SendFileToS3, $contents);
            }
        }