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