Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
gilour
/
foundation
/
src
/
Files
/
S3
:
InteractsWithS3Api.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Common\Files\S3; use Aws\S3\S3Client; use Common\Settings\Settings; use Illuminate\Contracts\Filesystem\Filesystem; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; trait InteractsWithS3Api { protected function getDiskName(): string { return request()->input('disk') ?: 'uploads'; } protected function getDisk(): Filesystem { return Storage::disk($this->getDiskName()); } protected function getClient(): ?S3Client { return $this->getDisk()->getClient(); } protected function getBucket(): string { $credentialsKey = config( "common.site.{$this->getDiskName()}_disk_driver", ); return config("services.{$credentialsKey}.bucket"); } protected function getAcl(): string { return $this->getDiskName() === 'public' || config('common.site.remote_file_visibility') === 'public' ? 'public-read' : 'private'; } protected function buildFileKey(): string { $uuid = Str::uuid(); $filename = request('filename'); $extension = request('extension'); $keepOriginalName = app(Settings::class)->get( 'uploads.keep_original_name', ); if ($this->getDiskName() === 'public') { $fileKey = $keepOriginalName ? $filename : "$uuid.$extension"; $diskPrefix = request('diskPrefix'); if ($diskPrefix) { $fileKey = "$diskPrefix/$fileKey"; } } else { $diskPrefix = $uuid; $filename = $keepOriginalName ? $filename : $uuid; $fileKey = "$diskPrefix/$filename"; } $pathPrefix = $this->getDisk()->path(''); if ($pathPrefix) { $fileKey = "{$pathPrefix}{$fileKey}"; } return $fileKey; } }