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; } }