mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-15 01:35:02 +00:00
Merge remote-tracking branch 'origin/master' into oasis
# Conflicts: # composer.json # public/chunks/admin-account.js # public/chunks/admin.js # public/chunks/app-appearance.js # public/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js # public/chunks/app-billings.js # public/chunks/app-email.js # public/chunks/app-index.js # public/chunks/app-language.js # public/chunks/app-others.js # public/chunks/app-payments.js # public/chunks/app-settings.js # public/chunks/app-setup.js # public/chunks/billings-detail.js # public/chunks/contact-us.js # public/chunks/create-new-password.js # public/chunks/dashboard.js # public/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plans~chunks/user-invoices.js # public/chunks/database.js # public/chunks/dynamic-page.js # public/chunks/environment-setup.js # public/chunks/files.js # public/chunks/files~chunks/shared-files~chunks/shared/file-browser.js # public/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js # public/chunks/forgotten-password.js # public/chunks/homepage.js # public/chunks/installation-disclaimer.js # public/chunks/invoices.js # public/chunks/page-edit.js # public/chunks/pages.js # public/chunks/plan-create.js # public/chunks/plan-delete.js # public/chunks/plan-settings.js # public/chunks/plan-subscribers.js # public/chunks/plan.js # public/chunks/plans.js # public/chunks/platform.js # public/chunks/platform~chunks/shared.js # public/chunks/profile.js # public/chunks/profile~chunks/settings-password.js # public/chunks/purchase-code.js # public/chunks/settings-create-payment-methods.js # public/chunks/settings-invoices.js # public/chunks/settings-password.js # public/chunks/settings-payment-methods.js # public/chunks/settings-storage.js # public/chunks/settings-subscription.js # public/chunks/settings.js # public/chunks/setup-wizard.js # public/chunks/shared-files.js # public/chunks/shared.js # public/chunks/shared/authenticate.js # public/chunks/shared/file-browser.js # public/chunks/shared/single-file.js # public/chunks/sign-in.js # public/chunks/sign-up.js # public/chunks/stripe-credentials.js # public/chunks/subscription-plans.js # public/chunks/subscription-service.js # public/chunks/upgrade-billing.js # public/chunks/upgrade-plan.js # public/chunks/user-create.js # public/chunks/user-delete.js # public/chunks/user-detail.js # public/chunks/user-invoices.js # public/chunks/user-password.js # public/chunks/user-storage.js # public/chunks/user-subscription.js # public/chunks/user.js # public/chunks/users.js # public/css/app.css # public/js/main.js # public/mix-manifest.json # resources/js/router.js # resources/js/store/modules/userAuth.js
This commit is contained in:
@@ -11,6 +11,7 @@ use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use Illuminate\Console\Command;
|
||||
use Faker;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class SetupDevEnvironment extends Command
|
||||
@@ -114,7 +115,7 @@ class SetupDevEnvironment extends Command
|
||||
'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']),
|
||||
]);
|
||||
|
||||
\File::copy(storage_path("demo/avatars/avatar-01.png"), storage_path("app/avatars/avatar-01.png"));
|
||||
Storage::putFileAs("avatars", storage_path("demo/avatars/avatar-01.png"), 'avatar-01.png', "private");
|
||||
|
||||
// Show user credentials
|
||||
$this->info('Default admin account created. Email: howdy@hi5ve.digital and Password: vuefilemanager');
|
||||
@@ -155,7 +156,7 @@ class SetupDevEnvironment extends Command
|
||||
'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']),
|
||||
]);
|
||||
|
||||
\File::copy(storage_path("demo/avatars/{$user['avatar']}"), storage_path("app/avatars/{$user['avatar']}"));
|
||||
Storage::putFileAs("avatars", storage_path("demo/avatars/{$user['avatar']}"), $user['avatar'], "private");
|
||||
|
||||
$this->info("Generated user with email: $newbie->email and Password: vuefilemanager");
|
||||
});
|
||||
@@ -378,7 +379,7 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file['basename'];
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/documents/{$file['basename']}"), storage_path("app/files/$user->id/$basename"));
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -422,7 +423,7 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file['basename'];
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/documents/{$file['basename']}"), storage_path("app/files/$user->id/$basename"));
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -456,7 +457,7 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file['basename'];
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/documents/{$file['basename']}"), storage_path("app/files/$user->id/$basename"));
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -515,7 +516,7 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file['basename'];
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/documents/{$file['basename']}"), storage_path("app/files/$user->id/$basename"));
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/documents/{$file['basename']}"), $basename, "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -543,7 +544,7 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file;
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/video/$file"), storage_path("app/files/$user->id/$basename"));
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/video/$file"), $basename, "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -568,7 +569,7 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file;
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/video/$file"), storage_path("app/files/$user->id/$basename"));
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/video/$file"), $basename, "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -593,7 +594,7 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file;
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/audio/$file"), storage_path("app/files/$user->id/$basename"));
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/audio/$file"), $basename, "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -629,9 +630,8 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file;
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/images/memes/$file"), storage_path("app/files/$user->id/$basename"));
|
||||
|
||||
$this->info("Creating thumbnail for image: $file");
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/images/memes/$file"), $basename, "private");
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/images/memes/thumbnail-$file"), "thumbnail-$basename", "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -643,7 +643,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => 'jpg',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
|
||||
'thumbnail' => "thumbnail-$basename",
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
@@ -663,9 +663,8 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file;
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/images/apartments/$file"), storage_path("app/files/$user->id/$basename"));
|
||||
|
||||
$this->info("Creating thumbnail for image: $file");
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/images/apartments/$file"), $basename, "private");
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/images/apartments/thumbnail-$file"), "thumbnail-$basename", "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -677,7 +676,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => 'jpg',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
|
||||
'thumbnail' => "thumbnail-$basename",
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
@@ -701,9 +700,8 @@ class SetupDevEnvironment extends Command
|
||||
$basename = Str::random(12) . '-' . $file;
|
||||
|
||||
// Copy file into app storage
|
||||
\File::copy(storage_path("demo/images/nature/$file"), storage_path("app/files/$user->id/$basename"));
|
||||
|
||||
$this->info("Creating thumbnail for image: $file");
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/images/nature/$file"), $basename, "private");
|
||||
Storage::putFileAs("files/$user->id", storage_path("demo/images/nature/thumbnail-$file"), "thumbnail-$basename", "private");
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
@@ -715,7 +713,7 @@ class SetupDevEnvironment extends Command
|
||||
'author' => 'user',
|
||||
'mimetype' => 'jpg',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
|
||||
'thumbnail' => "thumbnail-$basename",
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
@@ -878,7 +876,7 @@ class SetupDevEnvironment extends Command
|
||||
// Get system images
|
||||
collect(['logo.svg', 'logo-horizontal.svg', 'favicon.png', 'og-image.jpg', 'touch-icon.png'])
|
||||
->each(function ($file) {
|
||||
\File::copy(storage_path("demo/app/$file"), storage_path("app/system/$file"));
|
||||
Storage::putFileAs("system", storage_path("demo/app/$file"), $file, "private");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -43,16 +43,19 @@ class BrowseShareController extends Controller
|
||||
$image = File::whereUserId($shared->user_id)
|
||||
->whereType('image')
|
||||
->whereId($shared->item_id)
|
||||
->firstOrFail();
|
||||
->first();
|
||||
|
||||
// Store user download size
|
||||
$shared
|
||||
->user
|
||||
->record_download(
|
||||
(int)$image->getRawOriginal('filesize')
|
||||
);
|
||||
if ($image) {
|
||||
|
||||
return $this->get_single_image($image, $shared->user_id);
|
||||
// Store user download size
|
||||
$shared
|
||||
->user
|
||||
->record_download(
|
||||
(int)$image->getRawOriginal('filesize')
|
||||
);
|
||||
|
||||
return $this->get_single_image($image, $shared->user_id);
|
||||
}
|
||||
}
|
||||
|
||||
return view("index")
|
||||
|
||||
@@ -52,8 +52,8 @@ class InvoiceAdminResource extends JsonResource
|
||||
'id' => $user->id,
|
||||
'type' => 'user',
|
||||
'attributes' => [
|
||||
'name' => $user->name,
|
||||
'avatar' => $user->avatar,
|
||||
'name' => $user->settings->name,
|
||||
'avatar' => $user->settings->avatar,
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
@@ -19,11 +19,11 @@ class LanguageResource extends JsonResource
|
||||
'id' => $this->id,
|
||||
'type' => 'languages',
|
||||
'attributes' => [
|
||||
'name' => $this->name,
|
||||
'locale' => $this->locale,
|
||||
'name' => $this->name,
|
||||
'locale' => $this->locale,
|
||||
'translations' => map_language_translations($this->languageTranslations),
|
||||
'updated_at' => $this->updated_at,
|
||||
'created_at' => $this->created_at,
|
||||
'updated_at' => $this->updated_at,
|
||||
'created_at' => $this->created_at,
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
+2
-2
@@ -104,7 +104,7 @@ class File extends Model
|
||||
// Get thumbnail from external storage
|
||||
if ($this->attributes['thumbnail'] && ! is_storage_driver(['local'])) {
|
||||
|
||||
return Storage::temporaryUrl('files/' . $this->attributes['thumbnail'], now()->addHour());
|
||||
return Storage::temporaryUrl("files/$this->user_id/{$this->attributes['thumbnail']}", now()->addHour());
|
||||
}
|
||||
|
||||
// Get thumbnail from local storage
|
||||
@@ -145,7 +145,7 @@ class File extends Model
|
||||
'ResponseContentDisposition' => 'attachment; filename=' . $file_pretty_name,
|
||||
];
|
||||
|
||||
return Storage::temporaryUrl('files/' . $this->attributes['basename'], now()->addDay(), $header);
|
||||
return Storage::temporaryUrl("files/$this->user_id/{$this->attributes['basename']}", now()->addDay(), $header);
|
||||
}
|
||||
|
||||
// Get thumbnail from local storage
|
||||
|
||||
@@ -22,7 +22,7 @@ class UserSettings extends Model
|
||||
public function getAvatarAttribute()
|
||||
{
|
||||
// Get avatar from external storage
|
||||
if ($this->attributes['avatar'] && is_storage_driver(['s3', 'spaces', 'wasabi', 'backblaze'])) {
|
||||
if ($this->attributes['avatar'] && ! is_storage_driver('local')) {
|
||||
return Storage::temporaryUrl($this->attributes['avatar'], now()->addDay());
|
||||
}
|
||||
|
||||
@@ -31,6 +31,6 @@ class UserSettings extends Model
|
||||
return url('/' . $this->attributes['avatar']);
|
||||
}
|
||||
|
||||
return url('/assets/images/' . 'default-avatar.png');
|
||||
return url('/assets/images/default-avatar.png');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ class SharedSendViaEmail extends Notification
|
||||
/**
|
||||
* Get the notification's delivery channels.
|
||||
*
|
||||
* @param mixed $notifiable
|
||||
* @param mixed $notifiable
|
||||
* @return array
|
||||
*/
|
||||
public function via($notifiable)
|
||||
@@ -37,23 +37,23 @@ class SharedSendViaEmail extends Notification
|
||||
/**
|
||||
* Get the mail representation of the notification.
|
||||
*
|
||||
* @param mixed $notifiable
|
||||
* @param mixed $notifiable
|
||||
* @return \Illuminate\Notifications\Messages\MailMessage
|
||||
*/
|
||||
public function toMail($notifiable)
|
||||
{
|
||||
return (new MailMessage)
|
||||
->subject(__t('shared_link_email_subject', ['user' => $this->user->name]))
|
||||
->subject(__t('shared_link_email_subject', ['user' => $this->user->settings->name]))
|
||||
->greeting(__t('shared_link_email_greeting'))
|
||||
->line(__t('shared_link_email_user', ['user' => $this->user->name, 'email' => $this->user->email]))
|
||||
->action(__t('shared_link_email_link'), url('/shared', ['token' => $this->token]))
|
||||
->line(__t('shared_link_email_user', ['user' => $this->user->settings->name, 'email' => $this->user->email]))
|
||||
->action(__t('shared_link_email_link'), url('/share', ['token' => $this->token]))
|
||||
->salutation(__t('shared_link_email_salutation', ['app_name' => get_setting('app_title') ?? 'VueFileManager']));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the array representation of the notification.
|
||||
*
|
||||
* @param mixed $notifiable
|
||||
* @param mixed $notifiable
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($notifiable)
|
||||
|
||||
@@ -52,13 +52,14 @@ class FileManagerService
|
||||
|
||||
// Move file to local storage from external storage service
|
||||
if (!is_storage_driver('local')) {
|
||||
$files->each(function ($file) use ($disk_local) {
|
||||
|
||||
foreach ($files as $file) {
|
||||
try {
|
||||
$disk_local->put("temp/$file->basename", Storage::get("files/$file->user_id/$file->basename"));
|
||||
$disk_local->put("temp/{$file['basename']}", Storage::get("files/$requested_folder->user_id/{$file['basename']}"));
|
||||
} catch (FileNotFoundException $e) {
|
||||
throw new HttpException(404, 'File not found');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Get zip path
|
||||
@@ -67,17 +68,16 @@ class FileManagerService
|
||||
// Create zip
|
||||
$zip = Madzipper::make($disk_local->path("zip/$zip_name"));
|
||||
|
||||
// Get files folder on local storage drive
|
||||
$directory = is_storage_driver('local') ? 'files' : 'temp';
|
||||
|
||||
// Add files to zip
|
||||
foreach ($files as $file) {
|
||||
|
||||
$file_path = is_storage_driver('local')
|
||||
? $disk_local->path("files/$requested_folder->user_id/{$file['basename']}")
|
||||
: $disk_local->path("temp/{$file['basename']}");
|
||||
|
||||
$zip
|
||||
->folder($file['folder_path'])
|
||||
->addString(
|
||||
"{$file['name']}.{$file['mimetype']}",
|
||||
File::get($disk_local->path("/$directory/$requested_folder->user_id/{$file['basename']}"))
|
||||
);
|
||||
->addString("{$file['name']}.{$file['mimetype']}", File::get($file_path));
|
||||
}
|
||||
|
||||
// Close zip
|
||||
@@ -114,6 +114,7 @@ class FileManagerService
|
||||
|
||||
// Move file to local storage from external storage service
|
||||
if (!is_storage_driver('local')) {
|
||||
|
||||
$files->each(function ($file) use ($disk_local) {
|
||||
try {
|
||||
$disk_local->put("temp/$file->basename", Storage::get("files/$file->user_id/$file->basename"));
|
||||
@@ -129,14 +130,14 @@ class FileManagerService
|
||||
// Create zip
|
||||
$zip = Madzipper::make($disk_local->path("zip/$zip_name"));
|
||||
|
||||
// Get files folder on local storage drive
|
||||
$directory = is_storage_driver('local') ? 'files' : 'temp';
|
||||
|
||||
// Add files to zip
|
||||
$files->each(function ($file) use ($zip, $directory, $disk_local) {
|
||||
$zip->addString(
|
||||
"$file->name.$file->mimetype",
|
||||
File::get($disk_local->path("/$directory/$file->user_id/$file->basename")));
|
||||
$files->each(function ($file) use ($zip, $disk_local) {
|
||||
|
||||
$file_path = is_storage_driver('local')
|
||||
? $disk_local->path("files/$file->user_id/$file->basename")
|
||||
: $disk_local->path("temp/$file->basename");
|
||||
|
||||
$zip->addString("$file->name.$file->mimetype", File::get($file_path));
|
||||
});
|
||||
|
||||
// Close zip
|
||||
@@ -388,27 +389,25 @@ class FileManagerService
|
||||
$disk_local = Storage::disk('local');
|
||||
|
||||
// Get user data
|
||||
$user_id = $shared ? $shared->user_id : Auth::id();
|
||||
$user_id = $shared->user_id ?? Auth::id();
|
||||
|
||||
// File Info
|
||||
$file_size = $disk_local->size('chunks/' . $temp_filename);
|
||||
$file_size = $disk_local->size("chunks/$temp_filename");
|
||||
|
||||
$file_mimetype = $disk_local->mimeType('chunks/' . $temp_filename);
|
||||
$file_mimetype = $disk_local->mimeType("chunks/$temp_filename");
|
||||
|
||||
// Check if user has enough space to upload file
|
||||
$this->helper->check_user_storage_capacity($user_id, $file_size, $temp_filename);
|
||||
|
||||
// Create thumbnail
|
||||
$thumbnail = $this->helper->create_image_thumbnail('chunks/' . $temp_filename, $disk_file_name, $user_id);
|
||||
$thumbnail = $this->helper->create_image_thumbnail("chunks/$temp_filename", $disk_file_name, $user_id);
|
||||
|
||||
// Move finished file from chunk to file-manager directory
|
||||
$disk_local->move('chunks/' . $temp_filename, "files/$user_id/$disk_file_name");
|
||||
$disk_local->move("chunks/$temp_filename", "files/$user_id/$disk_file_name");
|
||||
|
||||
// Move files to external storage
|
||||
if (!is_storage_driver(['local'])) {
|
||||
|
||||
// Move file to external storage service
|
||||
$this->helper->move_file_to_external_storage($disk_file_name, $thumbnail);
|
||||
$this->helper->move_file_to_external_storage($disk_file_name, $user_id);
|
||||
}
|
||||
|
||||
// Store user upload size
|
||||
|
||||
@@ -120,66 +120,60 @@ class HelperService
|
||||
/**
|
||||
* Move file to external storage if is set
|
||||
*
|
||||
* @param string $filename
|
||||
* @param string|null $thumbnail
|
||||
* @param string $file
|
||||
* @param string $user_id
|
||||
*/
|
||||
function move_file_to_external_storage($filename, $thumbnail = null): void
|
||||
function move_file_to_external_storage($file, $user_id): void
|
||||
{
|
||||
$disk_local = Storage::disk('local');
|
||||
|
||||
foreach ([$filename, $thumbnail] as $file) {
|
||||
// Get file size
|
||||
$filesize = $disk_local->size("files/$user_id/$file");
|
||||
|
||||
// Check if file exist
|
||||
if (!$file) continue;
|
||||
// If file is bigger than 5.2MB then run multipart upload
|
||||
if ($filesize > 5242880) {
|
||||
|
||||
// Get file size
|
||||
$filesize = $disk_local->size('files/' . $file);
|
||||
// Get driver
|
||||
$driver = \Storage::getDriver();
|
||||
|
||||
// If file is bigger than 5.2MB then run multipart upload
|
||||
if ($filesize > 5242880) {
|
||||
// Get adapter
|
||||
$adapter = $driver->getAdapter();
|
||||
|
||||
// Get driver
|
||||
$driver = \Storage::getDriver();
|
||||
// Get client
|
||||
$client = $adapter->getClient();
|
||||
|
||||
// Get adapter
|
||||
$adapter = $driver->getAdapter();
|
||||
// Prepare the upload parameters.
|
||||
// TODO: replace local files with temp folder
|
||||
$uploader = new MultipartUploader($client, config('filesystems.disks.local.root') . "/files/$user_id/$file", [
|
||||
'bucket' => $adapter->getBucket(),
|
||||
'key' => "/files/$user_id/$file"
|
||||
]);
|
||||
|
||||
// Get client
|
||||
$client = $adapter->getClient();
|
||||
try {
|
||||
|
||||
// Prepare the upload parameters.
|
||||
// TODO: replace local files with temp folder
|
||||
$uploader = new MultipartUploader($client, config('filesystems.disks.local.root') . '/files/' . $file, [
|
||||
'bucket' => $adapter->getBucket(),
|
||||
'key' => 'files/' . $file
|
||||
]);
|
||||
// Upload content
|
||||
$uploader->upload();
|
||||
|
||||
try {
|
||||
} catch (MultipartUploadException $e) {
|
||||
|
||||
// Upload content
|
||||
$uploader->upload();
|
||||
// Write error log
|
||||
Log::error($e->getMessage());
|
||||
|
||||
} catch (MultipartUploadException $e) {
|
||||
// Delete file after error
|
||||
$disk_local->delete("/files/$user_id/$file");
|
||||
|
||||
// Write error log
|
||||
Log::error($e->getMessage());
|
||||
|
||||
// Delete file after error
|
||||
$disk_local->delete('files/' . $file);
|
||||
|
||||
throw new HttpException(409, $e->getMessage());
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// Stream file object to s3
|
||||
// TODO: replace local files with temp folder
|
||||
Storage::putFileAs('files', config('filesystems.disks.local.root') . '/files/' . $file, $file, 'private');
|
||||
throw new HttpException(409, $e->getMessage());
|
||||
}
|
||||
|
||||
// Delete file after upload
|
||||
$disk_local->delete('files/' . $file);
|
||||
} else {
|
||||
|
||||
// Stream file object to s3
|
||||
// TODO: replace local files with temp folder
|
||||
Storage::putFileAs("files/$user_id", config('filesystems.disks.local.root') . "/files/$user_id/$file", $file, "private");
|
||||
}
|
||||
|
||||
// Delete file after upload
|
||||
$disk_local->delete("/files/$user_id/$file");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -192,16 +186,14 @@ class HelperService
|
||||
*/
|
||||
function create_image_thumbnail($file_path, $filename, $user_id)
|
||||
{
|
||||
$local_disk = Storage::disk('local');
|
||||
|
||||
// Create thumbnail from image
|
||||
if (in_array($local_disk->mimeType($file_path), ['image/gif', 'image/jpeg', 'image/jpg', 'image/png', 'image/webp'])) {
|
||||
if (in_array(Storage::disk('local')->mimeType($file_path), ['image/gif', 'image/jpeg', 'image/jpg', 'image/png', 'image/webp'])) {
|
||||
|
||||
// Get thumbnail name
|
||||
$thumbnail = "thumbnail-$filename";
|
||||
|
||||
// Create intervention image
|
||||
$image = Image::make($local_disk->path($file_path))
|
||||
$image = Image::make(Storage::disk('local')->path($file_path))
|
||||
->orientate();
|
||||
|
||||
// Resize image
|
||||
@@ -210,11 +202,11 @@ class HelperService
|
||||
})->stream();
|
||||
|
||||
// Store thumbnail to disk
|
||||
$local_disk->put("files/$user_id/$thumbnail", $image);
|
||||
Storage::put("files/$user_id/$thumbnail", $image);
|
||||
}
|
||||
|
||||
// Return thumbnail as svg file
|
||||
if ($local_disk->mimeType($file_path) === 'image/svg+xml') {
|
||||
if (Storage::disk('local')->mimeType($file_path) === 'image/svg+xml') {
|
||||
|
||||
$thumbnail = $filename;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user