From caf6228a88cb86a55ac6e04b9705ba5a5b4252d1 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Mon, 29 Apr 2024 15:37:02 +0800 Subject: [PATCH 1/2] Laravel Vapor - sync code for download files in bulk from S3 to more files --- .../Processors/CreateInvoiceDocumentProcessor.php | 9 ++++++++- .../Notifications/PaymentProofUploadedEmail.php | 10 +++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php index 6215a1e1..2be4a3fb 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php @@ -10,6 +10,7 @@ use App\Classes\ValueObjects\Constants\DocumentType; use App\Models\Document; use Mccarlosen\LaravelMpdf\Facades\LaravelMpdf; use Webklex\PDFMerger\Facades\PDFMergerFacade as PDFMerger; +use Illuminate\Support\Facades\Storage; class CreateInvoiceDocumentProcessor { @@ -52,8 +53,14 @@ class CreateInvoiceDocumentProcessor $order_pdf->save(storage_path('app/documents/temp.pdf')); $oMerger->addPDF(storage_path('app/documents/temp.pdf'), 'all'); + $filesystemDriver = Storage::getDefaultDriver(); foreach ($purchaseOrderDocuments as $document){ - $oMerger->addPDF(storage_path('app/documents/'.$document->files()->first()->file->file_info->original->file), 'all'); + $localFilePath = storage_path('app/documents/' . $document->files()->first()->file->file_info->original->file); + $oMerger->addPDF($localFilePath, 'all'); + if($filesystemDriver === 's3'){ + $filePathForS3 = 'documents/'.$document->files()->first()->file->file_info->original->file; + Storage::disk('s3')->put($filePathForS3, file_get_contents($localFilePath)); + } } $oMerger->merge(); diff --git a/app/Classes/Notifications/PaymentProofUploadedEmail.php b/app/Classes/Notifications/PaymentProofUploadedEmail.php index 1fdc8e14..c2307d76 100644 --- a/app/Classes/Notifications/PaymentProofUploadedEmail.php +++ b/app/Classes/Notifications/PaymentProofUploadedEmail.php @@ -7,6 +7,7 @@ use App\Models\User; use App\Models\File; use App\Models\UserEmailVerification; use Illuminate\Notifications\Messages\MailMessage; +use Illuminate\Support\Facades\Storage; class PaymentProofUploadedEmail extends AbstractEmail { @@ -40,7 +41,14 @@ class PaymentProofUploadedEmail extends AbstractEmail foreach ($file_info as $fileCount => $fileVal) { if (isset($fileVal->original)) { $file_path = $fileVal->original->file; - $attachedFile = storage_path('app/documents/' . $file_path); + + // $filesystemDriver = Storage::getDefaultDriver(); + // if($filesystemDriver === 's3'){ + // $fileContent = Storage::disk('s3')->get('documents/'.$file_path); + // } + // else{ + // $attachedFile = storage_path('app/documents/' . $file_path); + // } } } From faacc26b638ce41e85b2180295af49096d422015 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Mon, 29 Apr 2024 15:37:38 +0800 Subject: [PATCH 2/2] Laravel Vapor - sync code for download files in bulk from S3 to more files --- vapor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vapor.yml b/vapor.yml index 4328e569..a0d31602 100644 --- a/vapor.yml +++ b/vapor.yml @@ -55,7 +55,7 @@ environments: - exchange-default-development - exchange-high_priority-development database: cief-rds-mysql - storage: exchange-2.0-production + storage: exchange-2.0-development runtime: 'docker' timeout: 180 build: