mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 16:22:14 +00:00
remote upload refactoring
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
APP_NAME=Laravel
|
APP_NAME=Laravel
|
||||||
APP_ENV=local
|
APP_ENV=local
|
||||||
APP_KEY=base64:k5FduZ4Vu5ONvcJysN6xZYlix606oNocewyXSyOEspQ=
|
APP_KEY=base64:/yb14wOXR+PqqMWnzqE2YZxcvqwSYYKDHtrF0BpT5fM=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_URL=http://localhost
|
APP_URL=http://localhost
|
||||||
APP_DEMO=false
|
APP_DEMO=false
|
||||||
|
|||||||
2
resources/js/store/modules/broadcasting.js
vendored
2
resources/js/store/modules/broadcasting.js
vendored
@@ -11,7 +11,7 @@ const actions = {
|
|||||||
commit('SET_RUNNING_COMMUNICATION')
|
commit('SET_RUNNING_COMMUNICATION')
|
||||||
|
|
||||||
Echo.private(`App.Users.Models.User.${getters.user.data.id}`)
|
Echo.private(`App.Users.Models.User.${getters.user.data.id}`)
|
||||||
.listen('.file.created', (event) => {
|
.listen('.RemoteFile.Created', (event) => {
|
||||||
commit('UPDATE_REMOTE_UPLOAD_QUEUE', event.payload)
|
commit('UPDATE_REMOTE_UPLOAD_QUEUE', event.payload)
|
||||||
|
|
||||||
// If user is located in same directory as remote upload was called, then show the files
|
// If user is located in same directory as remote upload was called, then show the files
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ use Domain\SetupWizard\Controllers\PingAPIController;
|
|||||||
use Domain\Folders\Controllers\CreateFolderController;
|
use Domain\Folders\Controllers\CreateFolderController;
|
||||||
use Domain\Browsing\Controllers\BrowseFolderController;
|
use Domain\Browsing\Controllers\BrowseFolderController;
|
||||||
use Domain\Sharing\Controllers\ShareViaEmailController;
|
use Domain\Sharing\Controllers\ShareViaEmailController;
|
||||||
use Domain\Files\Controllers\RemoteUploadFileController;
|
|
||||||
use Domain\Folders\Controllers\NavigationTreeController;
|
use Domain\Folders\Controllers\NavigationTreeController;
|
||||||
use Domain\Items\Controllers\MoveFileOrFolderController;
|
use Domain\Items\Controllers\MoveFileOrFolderController;
|
||||||
use App\Socialite\Controllers\SocialiteRedirectController;
|
use App\Socialite\Controllers\SocialiteRedirectController;
|
||||||
@@ -25,6 +24,7 @@ use Domain\Browsing\Controllers\BrowseLatestFilesController;
|
|||||||
use Domain\Browsing\Controllers\BrowseSharedItemsController;
|
use Domain\Browsing\Controllers\BrowseSharedItemsController;
|
||||||
use Domain\Browsing\Controllers\BrowseTrashContentController;
|
use Domain\Browsing\Controllers\BrowseTrashContentController;
|
||||||
use Domain\Homepage\Controllers\SendContactMessageController;
|
use Domain\Homepage\Controllers\SendContactMessageController;
|
||||||
|
use Domain\RemoteUpload\Controllers\RemoteUploadFileController;
|
||||||
use Domain\Sharing\Controllers\GetShareLinkViaQrCodeController;
|
use Domain\Sharing\Controllers\GetShareLinkViaQrCodeController;
|
||||||
use App\Users\Controllers\Authentication\RegisterUserController;
|
use App\Users\Controllers\Authentication\RegisterUserController;
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ use Domain\Files\Controllers\VisitorUploadFileController;
|
|||||||
use Domain\Folders\Controllers\VisitorCreateFolderController;
|
use Domain\Folders\Controllers\VisitorCreateFolderController;
|
||||||
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
|
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
|
||||||
use Domain\Browsing\Controllers\VisitorBrowseFolderController;
|
use Domain\Browsing\Controllers\VisitorBrowseFolderController;
|
||||||
use Domain\Files\Controllers\VisitorRemoteUploadFileController;
|
|
||||||
use Domain\Items\Controllers\VisitorMoveFileOrFolderController;
|
use Domain\Items\Controllers\VisitorMoveFileOrFolderController;
|
||||||
use Domain\Items\Controllers\VisitorDeleteFileOrFolderController;
|
use Domain\Items\Controllers\VisitorDeleteFileOrFolderController;
|
||||||
use Domain\Items\Controllers\VisitorRenameFileOrFolderController;
|
use Domain\Items\Controllers\VisitorRenameFileOrFolderController;
|
||||||
use Domain\Sharing\Controllers\VisitorUnlockLockedShareController;
|
use Domain\Sharing\Controllers\VisitorUnlockLockedShareController;
|
||||||
use Domain\Folders\Controllers\VisitorNavigationFolderTreeController;
|
use Domain\Folders\Controllers\VisitorNavigationFolderTreeController;
|
||||||
|
use Domain\RemoteUpload\Controllers\VisitorRemoteUploadFileController;
|
||||||
use Domain\Browsing\Controllers\VisitorSearchFilesAndFoldersController;
|
use Domain\Browsing\Controllers\VisitorSearchFilesAndFoldersController;
|
||||||
|
|
||||||
// Browse functions
|
// Browse functions
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ use Domain\UploadRequest\Controllers\MoveItemInUploadRequestController;
|
|||||||
use Domain\UploadRequest\Controllers\SetUploadRequestAsFilledController;
|
use Domain\UploadRequest\Controllers\SetUploadRequestAsFilledController;
|
||||||
use Domain\UploadRequest\Controllers\UploadFilesForUploadRequestController;
|
use Domain\UploadRequest\Controllers\UploadFilesForUploadRequestController;
|
||||||
use Domain\UploadRequest\Controllers\GetFolderTreeForUploadRequestController;
|
use Domain\UploadRequest\Controllers\GetFolderTreeForUploadRequestController;
|
||||||
use Domain\UploadRequest\Controllers\UploadFilesRemotelyForUploadRequestController;
|
use Domain\RemoteUpload\Controllers\UploadFilesRemotelyForUploadRequestController;
|
||||||
|
|
||||||
Route::get('/{uploadRequest}', GetUploadRequestController::class);
|
Route::get('/{uploadRequest}', GetUploadRequestController::class);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Console\Commands;
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\Console;
|
namespace App\Console;
|
||||||
|
|
||||||
use App\Console\Commands\SetupWebsocketEnvironment;
|
|
||||||
use Illuminate\Console\Scheduling\Schedule;
|
use Illuminate\Console\Scheduling\Schedule;
|
||||||
use App\Console\Commands\SetupDevEnvironment;
|
use App\Console\Commands\SetupDevEnvironment;
|
||||||
use App\Console\Commands\SetupProdEnvironment;
|
use App\Console\Commands\SetupProdEnvironment;
|
||||||
use Support\Scheduler\Actions\ReportUsageAction;
|
use Support\Scheduler\Actions\ReportUsageAction;
|
||||||
use Support\Upgrading\Actions\UpdateSystemAction;
|
use Support\Upgrading\Actions\UpdateSystemAction;
|
||||||
use Support\Demo\Actions\ClearHowdyDemoDataAction;
|
use Support\Demo\Actions\ClearHowdyDemoDataAction;
|
||||||
|
use App\Console\Commands\SetupWebsocketEnvironment;
|
||||||
use Support\Scheduler\Actions\DeleteFailedFilesAction;
|
use Support\Scheduler\Actions\DeleteFailedFilesAction;
|
||||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||||
use Support\Scheduler\Actions\DeleteUnverifiedUsersAction;
|
use Support\Scheduler\Actions\DeleteUnverifiedUsersAction;
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
namespace Domain\RemoteUpload\Actions;
|
||||||
|
|
||||||
namespace Domain\Files\Actions;
|
|
||||||
|
|
||||||
use Domain\Files\Events\NewFileWasStoredEvent;
|
|
||||||
use Domain\Files\Resources\FileResource;
|
|
||||||
use Log;
|
use Log;
|
||||||
use Error;
|
use Error;
|
||||||
use ErrorException;
|
use ErrorException;
|
||||||
@@ -12,23 +9,31 @@ use Illuminate\Support\Str;
|
|||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Domain\Files\Resources\FileResource;
|
||||||
|
use Domain\Files\Actions\ProcessFileAction;
|
||||||
use Spatie\QueueableAction\QueueableAction;
|
use Spatie\QueueableAction\QueueableAction;
|
||||||
|
use Domain\Files\Actions\MoveFileToFTPStorageAction;
|
||||||
|
use Domain\Files\Actions\ProcessImageThumbnailAction;
|
||||||
|
use Domain\Files\Actions\StoreFileExifMetadataAction;
|
||||||
|
use Domain\RemoteUpload\Events\RemoteFileCreatedEvent;
|
||||||
|
use Domain\Files\Actions\MoveFileToExternalStorageAction;
|
||||||
|
|
||||||
class GetContentFromExternalSource
|
class GetContentFromExternalSource
|
||||||
{
|
{
|
||||||
use QueueableAction;
|
use QueueableAction;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
public ProcessFileAction $processFile,
|
public ProcessFileAction $processFile,
|
||||||
public StoreFileExifMetadataAction $storeExifMetadata,
|
public StoreFileExifMetadataAction $storeExifMetadata,
|
||||||
public MoveFileToFTPStorageAction $moveFileToFTPStorage,
|
public MoveFileToFTPStorageAction $moveFileToFTPStorage,
|
||||||
public ProcessImageThumbnailAction $createImageThumbnail,
|
public ProcessImageThumbnailAction $createImageThumbnail,
|
||||||
public MoveFileToExternalStorageAction $moveFileToExternalStorage,
|
public MoveFileToExternalStorageAction $moveFileToExternalStorage,
|
||||||
) {}
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
array $payload,
|
array $payload,
|
||||||
User $user,
|
User $user,
|
||||||
) {
|
) {
|
||||||
$total = count($payload['urls']);
|
$total = count($payload['urls']);
|
||||||
$processed = 0;
|
$processed = 0;
|
||||||
@@ -91,7 +96,7 @@ class GetContentFromExternalSource
|
|||||||
$processed++;
|
$processed++;
|
||||||
|
|
||||||
// Broadcast new file into the frontend
|
// Broadcast new file into the frontend
|
||||||
NewFileWasStoredEvent::dispatch([
|
RemoteFileCreatedEvent::dispatch([
|
||||||
'progress' => [
|
'progress' => [
|
||||||
'total' => $total,
|
'total' => $total,
|
||||||
'processed' => $processed,
|
'processed' => $processed,
|
||||||
@@ -105,7 +110,7 @@ class GetContentFromExternalSource
|
|||||||
$failed++;
|
$failed++;
|
||||||
|
|
||||||
// Broadcast new file into the frontend
|
// Broadcast new file into the frontend
|
||||||
NewFileWasStoredEvent::dispatch([
|
RemoteFileCreatedEvent::dispatch([
|
||||||
'progress' => [
|
'progress' => [
|
||||||
'total' => $total,
|
'total' => $total,
|
||||||
'processed' => $processed,
|
'processed' => $processed,
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Files\Controllers;
|
namespace Domain\RemoteUpload\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Files\Requests\RemoteUploadRequest;
|
use Domain\Files\Requests\RemoteUploadRequest;
|
||||||
use Domain\Files\Actions\GetContentFromExternalSource;
|
use Domain\RemoteUpload\Actions\GetContentFromExternalSource;
|
||||||
|
|
||||||
class RemoteUploadFileController extends Controller
|
class RemoteUploadFileController extends Controller
|
||||||
{
|
{
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\UploadRequest\Controllers;
|
namespace Domain\RemoteUpload\Controllers;
|
||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Domain\Files\Requests\RemoteUploadRequest;
|
use Domain\Files\Requests\RemoteUploadRequest;
|
||||||
use Domain\UploadRequest\Models\UploadRequest;
|
use Domain\UploadRequest\Models\UploadRequest;
|
||||||
use Domain\Files\Actions\GetContentFromExternalSource;
|
|
||||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||||
|
use Domain\RemoteUpload\Actions\GetContentFromExternalSource;
|
||||||
|
|
||||||
class UploadFilesRemotelyForUploadRequestController
|
class UploadFilesRemotelyForUploadRequestController
|
||||||
{
|
{
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Files\Controllers;
|
namespace Domain\RemoteUpload\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
@@ -7,7 +7,7 @@ use App\Http\Controllers\Controller;
|
|||||||
use Domain\Files\Requests\RemoteUploadRequest;
|
use Domain\Files\Requests\RemoteUploadRequest;
|
||||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||||
use Domain\Files\Actions\GetContentFromExternalSource;
|
use Domain\RemoteUpload\Actions\GetContentFromExternalSource;
|
||||||
|
|
||||||
class VisitorRemoteUploadFileController extends Controller
|
class VisitorRemoteUploadFileController extends Controller
|
||||||
{
|
{
|
||||||
@@ -1,15 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
namespace Domain\RemoteUpload\Events;
|
||||||
|
|
||||||
namespace Domain\Files\Events;
|
|
||||||
|
|
||||||
use Domain\Files\Resources\FileResource;
|
|
||||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
|
||||||
use Illuminate\Broadcasting\PrivateChannel;
|
|
||||||
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
|
|
||||||
use Illuminate\Foundation\Events\Dispatchable;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use Illuminate\Broadcasting\PrivateChannel;
|
||||||
|
use Illuminate\Foundation\Events\Dispatchable;
|
||||||
|
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||||
|
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
|
||||||
|
|
||||||
class NewFileWasStoredEvent implements ShouldBroadcastNow
|
class RemoteFileCreatedEvent implements ShouldBroadcastNow
|
||||||
{
|
{
|
||||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||||
|
|
||||||
@@ -20,14 +18,15 @@ class NewFileWasStoredEvent implements ShouldBroadcastNow
|
|||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
public array $payload,
|
public array $payload,
|
||||||
) {}
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The event's broadcast name.
|
* The event's broadcast name.
|
||||||
*/
|
*/
|
||||||
public function broadcastAs(): string
|
public function broadcastAs(): string
|
||||||
{
|
{
|
||||||
return 'file.created';
|
return 'RemoteFile.Created';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Domain\Settings\Actions;
|
namespace Domain\Settings\Actions;
|
||||||
|
|
||||||
use Storage;
|
use Storage;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ use Domain\Folders\Models\Folder;
|
|||||||
use Illuminate\Http\UploadedFile;
|
use Illuminate\Http\UploadedFile;
|
||||||
use Domain\Settings\Models\Setting;
|
use Domain\Settings\Models\Setting;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
use Domain\Files\Events\NewFileWasStoredEvent;
|
use Domain\RemoteUpload\Events\RemoteFileCreatedEvent;
|
||||||
|
|
||||||
class FileTest extends TestCase
|
class FileTest extends TestCase
|
||||||
{
|
{
|
||||||
@@ -111,7 +111,7 @@ class FileTest extends TestCase
|
|||||||
public function it_remotely_upload_new_file()
|
public function it_remotely_upload_new_file()
|
||||||
{
|
{
|
||||||
Event::fake([
|
Event::fake([
|
||||||
NewFileWasStoredEvent::class,
|
RemoteFileCreatedEvent::class,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$user = User::factory()
|
$user = User::factory()
|
||||||
@@ -153,7 +153,7 @@ class FileTest extends TestCase
|
|||||||
|
|
||||||
File::all()
|
File::all()
|
||||||
->each(function ($file) {
|
->each(function ($file) {
|
||||||
Event::assertDispatched(fn(NewFileWasStoredEvent $event) => $event->payload['file']->id === $file->id);
|
Event::assertDispatched(fn (RemoteFileCreatedEvent $event) => $event->payload['file']->id === $file->id);
|
||||||
|
|
||||||
Storage::assertExists("files/$file->user_id/$file->basename");
|
Storage::assertExists("files/$file->user_id/$file->basename");
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user