mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
Zipping on the fly
This commit is contained in:
@@ -48,10 +48,10 @@ OSS_BUCKET=
|
|||||||
OSS_ENDPOINT=
|
OSS_ENDPOINT=
|
||||||
OSS_URL=
|
OSS_URL=
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
S3_ACCESS_KEY_ID=
|
||||||
AWS_SECRET_ACCESS_KEY=
|
S3_SECRET_ACCESS_KEY=
|
||||||
AWS_DEFAULT_REGION=
|
S3_DEFAULT_REGION=
|
||||||
AWS_BUCKET=
|
S3_BUCKET=
|
||||||
|
|
||||||
DO_SPACES_KEY=
|
DO_SPACES_KEY=
|
||||||
DO_SPACES_SECRET=
|
DO_SPACES_SECRET=
|
||||||
|
|||||||
@@ -34,10 +34,10 @@ MAIL_ENCRYPTION=null
|
|||||||
MAIL_FROM_ADDRESS=null
|
MAIL_FROM_ADDRESS=null
|
||||||
MAIL_FROM_NAME="${APP_NAME}"
|
MAIL_FROM_NAME="${APP_NAME}"
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
S3_ACCESS_KEY_ID=
|
||||||
AWS_SECRET_ACCESS_KEY=
|
S3_SECRET_ACCESS_KEY=
|
||||||
AWS_DEFAULT_REGION=us-east-1
|
S3_DEFAULT_REGION=us-east-1
|
||||||
AWS_BUCKET=
|
S3_BUCKET=
|
||||||
|
|
||||||
PUSHER_APP_ID=
|
PUSHER_APP_ID=
|
||||||
PUSHER_APP_KEY=
|
PUSHER_APP_KEY=
|
||||||
|
|||||||
@@ -28,17 +28,17 @@
|
|||||||
"laravel/ui": "^3.2.0",
|
"laravel/ui": "^3.2.0",
|
||||||
"league/flysystem-aws-s3-v3": "^1.0.29",
|
"league/flysystem-aws-s3-v3": "^1.0.29",
|
||||||
"league/flysystem-cached-adapter": "^1.1.0",
|
"league/flysystem-cached-adapter": "^1.1.0",
|
||||||
"madnest/madzipper": "^1.1.0",
|
|
||||||
"spatie/laravel-backup": "^6.16.1",
|
"spatie/laravel-backup": "^6.16.1",
|
||||||
"spatie/laravel-query-builder": "^3.5",
|
"spatie/laravel-query-builder": "^3.5",
|
||||||
"spatie/laravel-queueable-action": "^2.12",
|
"spatie/laravel-queueable-action": "^2.12",
|
||||||
"spatie/laravel-tail": "^4.3.3",
|
"spatie/laravel-tail": "^4.3.3",
|
||||||
|
"stechstudio/laravel-zipstream": "^4.4",
|
||||||
"teamtnt/laravel-scout-tntsearch-driver": "^11.5.0.0",
|
"teamtnt/laravel-scout-tntsearch-driver": "^11.5.0.0",
|
||||||
"vimeo/psalm": "^4.8.1"
|
"vimeo/psalm": "^4.8.1"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"ext-json": "*",
|
"ext-json": "*",
|
||||||
"friendsofphp/php-cs-fixer": "^3.0",
|
"friendsofphp/php-cs-fixer": "^3.0.0",
|
||||||
"barryvdh/laravel-ide-helper": "^2.10",
|
"barryvdh/laravel-ide-helper": "^2.10",
|
||||||
"facade/ignition": "^2.11.0",
|
"facade/ignition": "^2.11.0",
|
||||||
"fakerphp/faker": "^1.15.0",
|
"fakerphp/faker": "^1.15.0",
|
||||||
|
|||||||
891
composer.lock
generated
891
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -162,7 +162,6 @@ return [
|
|||||||
|
|
||||||
TeamTNT\Scout\TNTSearchScoutServiceProvider::class,
|
TeamTNT\Scout\TNTSearchScoutServiceProvider::class,
|
||||||
Intervention\Image\ImageServiceProvider::class,
|
Intervention\Image\ImageServiceProvider::class,
|
||||||
Madnest\Madzipper\MadzipperServiceProvider::class,
|
|
||||||
App\Providers\FortifyServiceProvider::class,
|
App\Providers\FortifyServiceProvider::class,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -229,36 +228,27 @@ return [
|
|||||||
'Image' => Intervention\Image\Facades\Image::class,
|
'Image' => Intervention\Image\Facades\Image::class,
|
||||||
'Stripe' => Cartalyst\Stripe\Laravel\Facades\Stripe::class,
|
'Stripe' => Cartalyst\Stripe\Laravel\Facades\Stripe::class,
|
||||||
'Crawler' => Jaybizzle\LaravelCrawlerDetect\Facades\LaravelCrawlerDetect::class,
|
'Crawler' => Jaybizzle\LaravelCrawlerDetect\Facades\LaravelCrawlerDetect::class,
|
||||||
//'Madzipper' => Madnest\Madzipper\Madzipper::class,
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'deploy_secret' => env('APP_DEPLOY_SECRET'),
|
'deploy_secret' => env('APP_DEPLOY_SECRET'),
|
||||||
'deploy_branch' => env('APP_DEPLOY_BRANCH'),
|
'deploy_branch' => env('APP_DEPLOY_BRANCH'),
|
||||||
|
|
||||||
'debug_blacklist' => [
|
'debug_blacklist' => [
|
||||||
'_ENV' => [
|
'_ENV' => [
|
||||||
'APP_KEY',
|
'APP_KEY',
|
||||||
|
|
||||||
'DB_USERNAME',
|
'DB_USERNAME',
|
||||||
'DB_PASSWORD',
|
'DB_PASSWORD',
|
||||||
'REDIS_PASSWORD',
|
'REDIS_PASSWORD',
|
||||||
'MAIL_PASSWORD',
|
'MAIL_PASSWORD',
|
||||||
|
|
||||||
'PUSHER_APP_KEY',
|
'PUSHER_APP_KEY',
|
||||||
'PUSHER_APP_SECRET',
|
'PUSHER_APP_SECRET',
|
||||||
|
|
||||||
'PASSPORT_CLIENT_ID',
|
'PASSPORT_CLIENT_ID',
|
||||||
'PASSPORT_CLIENT_SECRET',
|
'PASSPORT_CLIENT_SECRET',
|
||||||
|
'S3_SECRET_ACCESS_KEY',
|
||||||
'AWS_SECRET_ACCESS_KEY',
|
'S3_ACCESS_KEY_ID',
|
||||||
'AWS_ACCESS_KEY_ID',
|
|
||||||
|
|
||||||
'DO_SPACES_KEY',
|
'DO_SPACES_KEY',
|
||||||
'DO_SPACES_SECRET',
|
'DO_SPACES_SECRET',
|
||||||
|
|
||||||
'WASABI_KEY',
|
'WASABI_KEY',
|
||||||
'WASABI_SECRET',
|
'WASABI_SECRET',
|
||||||
|
|
||||||
'BACKBLAZE_KEY',
|
'BACKBLAZE_KEY',
|
||||||
'BACKBLAZE_SECRET',
|
'BACKBLAZE_SECRET',
|
||||||
],
|
],
|
||||||
@@ -276,8 +266,8 @@ return [
|
|||||||
'PASSPORT_CLIENT_ID',
|
'PASSPORT_CLIENT_ID',
|
||||||
'PASSPORT_CLIENT_SECRET',
|
'PASSPORT_CLIENT_SECRET',
|
||||||
|
|
||||||
'AWS_SECRET_ACCESS_KEY',
|
'S3_SECRET_ACCESS_KEY',
|
||||||
'AWS_ACCESS_KEY_ID',
|
'S3_ACCESS_KEY_ID',
|
||||||
|
|
||||||
'DO_SPACES_KEY',
|
'DO_SPACES_KEY',
|
||||||
'DO_SPACES_SECRET',
|
'DO_SPACES_SECRET',
|
||||||
@@ -288,7 +278,7 @@ return [
|
|||||||
'BACKBLAZE_KEY',
|
'BACKBLAZE_KEY',
|
||||||
'BACKBLAZE_SECRET',
|
'BACKBLAZE_SECRET',
|
||||||
],
|
],
|
||||||
'_POST' => [
|
'_POST' => [
|
||||||
'password',
|
'password',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -76,9 +76,9 @@ return [
|
|||||||
|
|
||||||
'dynamodb' => [
|
'dynamodb' => [
|
||||||
'driver' => 'dynamodb',
|
'driver' => 'dynamodb',
|
||||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
'key' => env('S3_ACCESS_KEY_ID'),
|
||||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
'secret' => env('S3_SECRET_ACCESS_KEY'),
|
||||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
'region' => env('S3_DEFAULT_REGION', 'us-east-1'),
|
||||||
'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
|
'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
|
||||||
'endpoint' => env('DYNAMODB_ENDPOINT'),
|
'endpoint' => env('DYNAMODB_ENDPOINT'),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -45,58 +45,19 @@ return [
|
|||||||
'driver' => 'local',
|
'driver' => 'local',
|
||||||
'root' => storage_path('app'),
|
'root' => storage_path('app'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'public' => [
|
'public' => [
|
||||||
'driver' => 'local',
|
'driver' => 'local',
|
||||||
'root' => storage_path('app/public'),
|
'root' => storage_path('app/public'),
|
||||||
'url' => env('APP_URL').'/storage',
|
'url' => env('APP_URL').'/storage',
|
||||||
'visibility' => 'public',
|
'visibility' => 'public',
|
||||||
],
|
],
|
||||||
|
|
||||||
'oss' => [
|
|
||||||
'driver' => 's3',
|
|
||||||
'key' => env('OSS_ACCESS_KEY_ID'),
|
|
||||||
'secret' => env('OSS_SECRET_ACCESS_KEY'),
|
|
||||||
'region' => env('OSS_REGION'),
|
|
||||||
'bucket' => env('OSS_BUCKET'),
|
|
||||||
'endpoint' => env('OSS_ENDPOINT'),
|
|
||||||
'url' => env('OSS_URL'),
|
|
||||||
],
|
|
||||||
|
|
||||||
's3' => [
|
's3' => [
|
||||||
'driver' => 's3',
|
'driver' => 's3',
|
||||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
'key' => env('S3_ACCESS_KEY_ID'),
|
||||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
'secret' => env('S3_SECRET_ACCESS_KEY'),
|
||||||
'region' => env('AWS_DEFAULT_REGION'),
|
'region' => env('S3_DEFAULT_REGION'),
|
||||||
'bucket' => env('AWS_BUCKET'),
|
'bucket' => env('S3_BUCKET'),
|
||||||
'endpoint' => env('AWS_URL'),
|
'endpoint' => env('S3_URL'),
|
||||||
],
|
|
||||||
|
|
||||||
'spaces' => [
|
|
||||||
'driver' => 's3',
|
|
||||||
'key' => env('DO_SPACES_KEY'),
|
|
||||||
'secret' => env('DO_SPACES_SECRET'),
|
|
||||||
'endpoint' => env('DO_SPACES_ENDPOINT'),
|
|
||||||
'region' => env('DO_SPACES_REGION'),
|
|
||||||
'bucket' => env('DO_SPACES_BUCKET'),
|
|
||||||
],
|
|
||||||
|
|
||||||
'wasabi' => [
|
|
||||||
'driver' => 's3',
|
|
||||||
'key' => env('WASABI_KEY'),
|
|
||||||
'secret' => env('WASABI_SECRET'),
|
|
||||||
'endpoint' => env('WASABI_ENDPOINT'),
|
|
||||||
'region' => env('WASABI_REGION'),
|
|
||||||
'bucket' => env('WASABI_BUCKET'),
|
|
||||||
],
|
|
||||||
|
|
||||||
'backblaze' => [
|
|
||||||
'driver' => 's3',
|
|
||||||
'key' => env('BACKBLAZE_KEY'),
|
|
||||||
'secret' => env('BACKBLAZE_SECRET'),
|
|
||||||
'endpoint' => env('BACKBLAZE_ENDPOINT'),
|
|
||||||
'region' => env('BACKBLAZE_REGION'),
|
|
||||||
'bucket' => env('BACKBLAZE_BUCKET'),
|
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -49,11 +49,11 @@ return [
|
|||||||
|
|
||||||
'sqs' => [
|
'sqs' => [
|
||||||
'driver' => 'sqs',
|
'driver' => 'sqs',
|
||||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
'key' => env('S3_ACCESS_KEY_ID'),
|
||||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
'secret' => env('S3_SECRET_ACCESS_KEY'),
|
||||||
'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
|
'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
|
||||||
'queue' => env('SQS_QUEUE', 'your-queue-name'),
|
'queue' => env('SQS_QUEUE', 'your-queue-name'),
|
||||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
'region' => env('S3_DEFAULT_REGION', 'us-east-1'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'redis' => [
|
'redis' => [
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'ses' => [
|
'ses' => [
|
||||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
'key' => env('S3_ACCESS_KEY_ID'),
|
||||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
'secret' => env('S3_SECRET_ACCESS_KEY'),
|
||||||
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
'region' => env('S3_DEFAULT_REGION', 'us-east-1'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'passport' => [
|
'passport' => [
|
||||||
|
|||||||
33
config/zipstream.php
Normal file
33
config/zipstream.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* You can place your custom package configuration in here.
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
// Default options for our archives
|
||||||
|
'archive' => [
|
||||||
|
'predict' => env('ZIPSTREAM_PREDICT_SIZE', true),
|
||||||
|
],
|
||||||
|
|
||||||
|
// Default options for files added
|
||||||
|
'file' => [
|
||||||
|
'method' => env('ZIPSTREAM_FILE_METHOD', 'store'),
|
||||||
|
|
||||||
|
'deflate' => env('ZIPSTREAM_FILE_DEFLATE'),
|
||||||
|
],
|
||||||
|
|
||||||
|
// Configs for S3 files
|
||||||
|
'aws' => [
|
||||||
|
'credentials' => [
|
||||||
|
'key' => env('S3_ACCESS_KEY_ID'),
|
||||||
|
'secret' => env('S3_SECRET_ACCESS_KEY'),
|
||||||
|
],
|
||||||
|
'version' => 'latest',
|
||||||
|
'endpoint' => env('S3_URL'),
|
||||||
|
'use_path_style_endpoint' => env('ZIPSTREAM_S3_PATH_STYLE_ENDPOINT', false),
|
||||||
|
'region' => env('ZIPSTREAM_S3_REGION', env('S3_DEFAULT_REGION', 'us-east-1')),
|
||||||
|
],
|
||||||
|
|
||||||
|
// https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_anonymous.html
|
||||||
|
'aws_anonymous_client' => env('S3_ANONYMOUS', false),
|
||||||
|
];
|
||||||
@@ -34,10 +34,10 @@ MAIL_ENCRYPTION=tls
|
|||||||
MAIL_FROM_ADDRESS="${MAIL_USERNAME}"
|
MAIL_FROM_ADDRESS="${MAIL_USERNAME}"
|
||||||
MAIL_FROM_NAME="${MAIL_USERNAME}"
|
MAIL_FROM_NAME="${MAIL_USERNAME}"
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
S3_ACCESS_KEY_ID=
|
||||||
AWS_SECRET_ACCESS_KEY=
|
S3_SECRET_ACCESS_KEY=
|
||||||
AWS_DEFAULT_REGION=
|
S3_DEFAULT_REGION=
|
||||||
AWS_BUCKET=
|
S3_BUCKET=
|
||||||
|
|
||||||
DO_SPACES_KEY=
|
DO_SPACES_KEY=
|
||||||
DO_SPACES_SECRET=
|
DO_SPACES_SECRET=
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
"/chunks/admin.js": "/chunks/admin.js?id=f48be89654bdd5857619",
|
"/chunks/admin.js": "/chunks/admin.js?id=f48be89654bdd5857619",
|
||||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=e96160a07e0045280e2c",
|
"/chunks/admin-account.js": "/chunks/admin-account.js?id=e96160a07e0045280e2c",
|
||||||
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=91adf6625e49f0b93731",
|
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=91adf6625e49f0b93731",
|
||||||
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a7b1c983.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a7b1c983.js?id=66c2c205086f658115d7",
|
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js?id=6c16b40191c43d6bd8ee",
|
||||||
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js?id=1afc2a786d4a7222405e",
|
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=f580c1668c202a4542d2",
|
||||||
"/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=5b0057f770c45f0ffd92",
|
"/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=5b0057f770c45f0ffd92",
|
||||||
"/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js?id=d5c9e6104890d4a17143",
|
"/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js?id=d5c9e6104890d4a17143",
|
||||||
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=2f834ba9277e999fee7a",
|
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=2f834ba9277e999fee7a",
|
||||||
@@ -75,6 +75,7 @@
|
|||||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=7886247bb35deada28a2",
|
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=7886247bb35deada28a2",
|
||||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=6e5c9d01fd2214d21de2",
|
"/chunks/sign-in.js": "/chunks/sign-in.js?id=6e5c9d01fd2214d21de2",
|
||||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=0838eae8d5c33f41789c",
|
"/chunks/sign-up.js": "/chunks/sign-up.js?id=0838eae8d5c33f41789c",
|
||||||
|
"/chunks/status-check.js": "/chunks/status-check.js?id=635d75468141b45bf14c",
|
||||||
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=fc62992171c9d72c3f4c",
|
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=fc62992171c9d72c3f4c",
|
||||||
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=1f3df9ae55ca315928d4",
|
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=1f3df9ae55ca315928d4",
|
||||||
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=1abfefb47d2e34107b64",
|
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=1abfefb47d2e34107b64",
|
||||||
@@ -90,211 +91,21 @@
|
|||||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=2ec04730d677842c8d10",
|
"/chunks/user-storage.js": "/chunks/user-storage.js?id=2ec04730d677842c8d10",
|
||||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=fc7ddaca95c26ec5c217",
|
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=fc7ddaca95c26ec5c217",
|
||||||
"/chunks/users.js": "/chunks/users.js?id=720f418eef0585bdb419",
|
"/chunks/users.js": "/chunks/users.js?id=720f418eef0585bdb419",
|
||||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~6c99cc74.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~6c99cc74.js?id=0a6998f62a162c08a48f",
|
|
||||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~cfac0ed6.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~cfac0ed6.js?id=f66c7653a087fe1f3320",
|
|
||||||
"/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js?id=9d10953d3b088324dfe3",
|
|
||||||
"/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=7d09e0b0658e140a7ffa",
|
|
||||||
"/chunks/platform.2fb97113768ec6ac8cf4.hot-update.js": "/chunks/platform.2fb97113768ec6ac8cf4.hot-update.js",
|
|
||||||
"/chunks/platform.269c296529f1e0bebfbc.hot-update.js": "/chunks/platform.269c296529f1e0bebfbc.hot-update.js",
|
|
||||||
"/js/main.fbb839974ed1b2dceb01.hot-update.js": "/js/main.fbb839974ed1b2dceb01.hot-update.js",
|
|
||||||
"/js/main.a16169bc4e06eb7f5dc9.hot-update.js": "/js/main.a16169bc4e06eb7f5dc9.hot-update.js",
|
|
||||||
"/js/main.fb460478cb691bafeaf9.hot-update.js": "/js/main.fb460478cb691bafeaf9.hot-update.js",
|
|
||||||
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js?id=6c16b40191c43d6bd8ee",
|
|
||||||
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=f580c1668c202a4542d2",
|
|
||||||
"/chunks/status-check.js": "/chunks/status-check.js?id=635d75468141b45bf14c",
|
|
||||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~25aaad73.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~25aaad73.js?id=0de519ac9b2c2754e0c2",
|
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~25aaad73.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~25aaad73.js?id=0de519ac9b2c2754e0c2",
|
||||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js?id=ca3b57f70682c1c315f7",
|
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js?id=ca3b57f70682c1c315f7",
|
||||||
"/js/main.c2ea1287545920d2d1d7.hot-update.js": "/js/main.c2ea1287545920d2d1d7.hot-update.js",
|
"/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js?id=9d10953d3b088324dfe3",
|
||||||
"/chunks/status-check.63fa29d966c15c677ded.hot-update.js": "/chunks/status-check.63fa29d966c15c677ded.hot-update.js",
|
"/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=7d09e0b0658e140a7ffa",
|
||||||
"/chunks/status-check.56f7ef8040cf10183052.hot-update.js": "/chunks/status-check.56f7ef8040cf10183052.hot-update.js",
|
"/js/main.57400113f383f4062d18.hot-update.js": "/js/main.57400113f383f4062d18.hot-update.js",
|
||||||
"/chunks/status-check.8eac1daf25a1315057b5.hot-update.js": "/chunks/status-check.8eac1daf25a1315057b5.hot-update.js",
|
"/js/main.73d8c447097ea4686777.hot-update.js": "/js/main.73d8c447097ea4686777.hot-update.js",
|
||||||
"/chunks/status-check.e69a44900306402e2575.hot-update.js": "/chunks/status-check.e69a44900306402e2575.hot-update.js",
|
"/js/main.0efd84c3833d84b7431f.hot-update.js": "/js/main.0efd84c3833d84b7431f.hot-update.js",
|
||||||
"/chunks/status-check.0335abb595171fb8febd.hot-update.js": "/chunks/status-check.0335abb595171fb8febd.hot-update.js",
|
"/js/main.7756efc0c099cafc2144.hot-update.js": "/js/main.7756efc0c099cafc2144.hot-update.js",
|
||||||
"/chunks/status-check.925d2eb52c3b6f1092fc.hot-update.js": "/chunks/status-check.925d2eb52c3b6f1092fc.hot-update.js",
|
"/js/main.16af1ec90f7cb7cfdc27.hot-update.js": "/js/main.16af1ec90f7cb7cfdc27.hot-update.js",
|
||||||
"/chunks/status-check.fa734d0ff0501d95d78a.hot-update.js": "/chunks/status-check.fa734d0ff0501d95d78a.hot-update.js",
|
"/js/main.6d974de4f295f73172f2.hot-update.js": "/js/main.6d974de4f295f73172f2.hot-update.js",
|
||||||
"/chunks/status-check.b52a65d0854eba152db0.hot-update.js": "/chunks/status-check.b52a65d0854eba152db0.hot-update.js",
|
"/js/main.784dc3bf93503ddfb3eb.hot-update.js": "/js/main.784dc3bf93503ddfb3eb.hot-update.js",
|
||||||
"/chunks/status-check.94a238343d32a3593730.hot-update.js": "/chunks/status-check.94a238343d32a3593730.hot-update.js",
|
"/js/main.a7e623e5e87a8cd06638.hot-update.js": "/js/main.a7e623e5e87a8cd06638.hot-update.js",
|
||||||
"/chunks/status-check.d26d16eb0f805934099e.hot-update.js": "/chunks/status-check.d26d16eb0f805934099e.hot-update.js",
|
"/js/main.fd177999a27d9a9e56ed.hot-update.js": "/js/main.fd177999a27d9a9e56ed.hot-update.js",
|
||||||
"/chunks/status-check.817d38d76d20d9b6b999.hot-update.js": "/chunks/status-check.817d38d76d20d9b6b999.hot-update.js",
|
"/js/main.8b39d84cfbd9e8d53355.hot-update.js": "/js/main.8b39d84cfbd9e8d53355.hot-update.js",
|
||||||
"/chunks/status-check.b23cf9da9024262c156c.hot-update.js": "/chunks/status-check.b23cf9da9024262c156c.hot-update.js",
|
"/js/main.571d6eb6e4cdc38cf4e7.hot-update.js": "/js/main.571d6eb6e4cdc38cf4e7.hot-update.js",
|
||||||
"/chunks/status-check.3caf4f948b9fb43bbe84.hot-update.js": "/chunks/status-check.3caf4f948b9fb43bbe84.hot-update.js",
|
"/js/main.0a092bdc430e651e46a6.hot-update.js": "/js/main.0a092bdc430e651e46a6.hot-update.js",
|
||||||
"/chunks/status-check.fd48ccab164693fcdea5.hot-update.js": "/chunks/status-check.fd48ccab164693fcdea5.hot-update.js",
|
"/js/main.a2e4ef0944dba57924a8.hot-update.js": "/js/main.a2e4ef0944dba57924a8.hot-update.js"
|
||||||
"/chunks/status-check.344bf3c13a2e36441be0.hot-update.js": "/chunks/status-check.344bf3c13a2e36441be0.hot-update.js",
|
|
||||||
"/chunks/status-check.ea968d6ece69aae07f08.hot-update.js": "/chunks/status-check.ea968d6ece69aae07f08.hot-update.js",
|
|
||||||
"/chunks/status-check.743a142fe4730f6d72af.hot-update.js": "/chunks/status-check.743a142fe4730f6d72af.hot-update.js",
|
|
||||||
"/chunks/status-check.5a6d6b03ac02d0701914.hot-update.js": "/chunks/status-check.5a6d6b03ac02d0701914.hot-update.js",
|
|
||||||
"/chunks/status-check.82222dc83f1b97faa180.hot-update.js": "/chunks/status-check.82222dc83f1b97faa180.hot-update.js",
|
|
||||||
"/chunks/status-check.12a7818cafb4f559e3ca.hot-update.js": "/chunks/status-check.12a7818cafb4f559e3ca.hot-update.js",
|
|
||||||
"/chunks/status-check.4f234d9cc5aa1f7383d6.hot-update.js": "/chunks/status-check.4f234d9cc5aa1f7383d6.hot-update.js",
|
|
||||||
"/chunks/status-check.a003a3da687f128f1e7e.hot-update.js": "/chunks/status-check.a003a3da687f128f1e7e.hot-update.js",
|
|
||||||
"/chunks/status-check.153b00e47876739069e3.hot-update.js": "/chunks/status-check.153b00e47876739069e3.hot-update.js",
|
|
||||||
"/chunks/status-check.2bae6095b187aef98c4a.hot-update.js": "/chunks/status-check.2bae6095b187aef98c4a.hot-update.js",
|
|
||||||
"/chunks/status-check.117479536341a6383292.hot-update.js": "/chunks/status-check.117479536341a6383292.hot-update.js",
|
|
||||||
"/chunks/status-check.2b4d86d0cae4f430abca.hot-update.js": "/chunks/status-check.2b4d86d0cae4f430abca.hot-update.js",
|
|
||||||
"/chunks/status-check.21ec11073ec3500f7ba1.hot-update.js": "/chunks/status-check.21ec11073ec3500f7ba1.hot-update.js",
|
|
||||||
"/chunks/status-check.2f86dfe4fe2abec46c5e.hot-update.js": "/chunks/status-check.2f86dfe4fe2abec46c5e.hot-update.js",
|
|
||||||
"/chunks/status-check.5773c30fb2fcb9d05689.hot-update.js": "/chunks/status-check.5773c30fb2fcb9d05689.hot-update.js",
|
|
||||||
"/chunks/status-check.03a83305772f7918d123.hot-update.js": "/chunks/status-check.03a83305772f7918d123.hot-update.js",
|
|
||||||
"/chunks/status-check.21bdb0e4207c0a40f7f6.hot-update.js": "/chunks/status-check.21bdb0e4207c0a40f7f6.hot-update.js",
|
|
||||||
"/chunks/status-check.656aa08d4bae5f1c3df3.hot-update.js": "/chunks/status-check.656aa08d4bae5f1c3df3.hot-update.js",
|
|
||||||
"/chunks/status-check.5211425a983b819363c7.hot-update.js": "/chunks/status-check.5211425a983b819363c7.hot-update.js",
|
|
||||||
"/chunks/status-check.859628c5c6992d3bb018.hot-update.js": "/chunks/status-check.859628c5c6992d3bb018.hot-update.js",
|
|
||||||
"/chunks/status-check.78422de75fed79be3951.hot-update.js": "/chunks/status-check.78422de75fed79be3951.hot-update.js",
|
|
||||||
"/chunks/status-check.908af3c7f8f9a7b1ae21.hot-update.js": "/chunks/status-check.908af3c7f8f9a7b1ae21.hot-update.js",
|
|
||||||
"/chunks/status-check.cbdef22c5c6001f2d227.hot-update.js": "/chunks/status-check.cbdef22c5c6001f2d227.hot-update.js",
|
|
||||||
"/chunks/status-check.62eafd6d519bd018414b.hot-update.js": "/chunks/status-check.62eafd6d519bd018414b.hot-update.js",
|
|
||||||
"/chunks/status-check.4083ee0f0450741e34b3.hot-update.js": "/chunks/status-check.4083ee0f0450741e34b3.hot-update.js",
|
|
||||||
"/chunks/status-check.c5fc51f63061817cc012.hot-update.js": "/chunks/status-check.c5fc51f63061817cc012.hot-update.js",
|
|
||||||
"/chunks/status-check.6367aec2f0f20b55910e.hot-update.js": "/chunks/status-check.6367aec2f0f20b55910e.hot-update.js",
|
|
||||||
"/chunks/status-check.0332955397de443c048f.hot-update.js": "/chunks/status-check.0332955397de443c048f.hot-update.js",
|
|
||||||
"/chunks/status-check.27d85b5ebb3b6e946930.hot-update.js": "/chunks/status-check.27d85b5ebb3b6e946930.hot-update.js",
|
|
||||||
"/chunks/status-check.4de407b5ef2da57f3d29.hot-update.js": "/chunks/status-check.4de407b5ef2da57f3d29.hot-update.js",
|
|
||||||
"/chunks/status-check.24f6388ea8eb94ebe753.hot-update.js": "/chunks/status-check.24f6388ea8eb94ebe753.hot-update.js",
|
|
||||||
"/chunks/status-check.6e32f854037eb3962c05.hot-update.js": "/chunks/status-check.6e32f854037eb3962c05.hot-update.js",
|
|
||||||
"/chunks/status-check.beab2f037dc3451bd183.hot-update.js": "/chunks/status-check.beab2f037dc3451bd183.hot-update.js",
|
|
||||||
"/chunks/status-check.8d938d248630f003d0f0.hot-update.js": "/chunks/status-check.8d938d248630f003d0f0.hot-update.js",
|
|
||||||
"/chunks/status-check.6e64aab3299cb4187df4.hot-update.js": "/chunks/status-check.6e64aab3299cb4187df4.hot-update.js",
|
|
||||||
"/chunks/status-check.f02f451b6a39b1505420.hot-update.js": "/chunks/status-check.f02f451b6a39b1505420.hot-update.js",
|
|
||||||
"/chunks/status-check.41a0d8d8ff82a12822d5.hot-update.js": "/chunks/status-check.41a0d8d8ff82a12822d5.hot-update.js",
|
|
||||||
"/chunks/status-check.9e5c61113daf0ef6e8a7.hot-update.js": "/chunks/status-check.9e5c61113daf0ef6e8a7.hot-update.js",
|
|
||||||
"/chunks/status-check.04b816923d6220da8bcd.hot-update.js": "/chunks/status-check.04b816923d6220da8bcd.hot-update.js",
|
|
||||||
"/chunks/status-check.3d05edacfae90f309828.hot-update.js": "/chunks/status-check.3d05edacfae90f309828.hot-update.js",
|
|
||||||
"/chunks/status-check.aaebee1463c6323bbc6a.hot-update.js": "/chunks/status-check.aaebee1463c6323bbc6a.hot-update.js",
|
|
||||||
"/chunks/status-check.70cbffa431377a3150be.hot-update.js": "/chunks/status-check.70cbffa431377a3150be.hot-update.js",
|
|
||||||
"/chunks/status-check.71df47da915040cf2118.hot-update.js": "/chunks/status-check.71df47da915040cf2118.hot-update.js",
|
|
||||||
"/chunks/status-check.818828709ad87794fbe9.hot-update.js": "/chunks/status-check.818828709ad87794fbe9.hot-update.js",
|
|
||||||
"/chunks/status-check.133fe71e1cb3f84ee1e4.hot-update.js": "/chunks/status-check.133fe71e1cb3f84ee1e4.hot-update.js",
|
|
||||||
"/chunks/status-check.5f3da43accc8be3d1a2b.hot-update.js": "/chunks/status-check.5f3da43accc8be3d1a2b.hot-update.js",
|
|
||||||
"/chunks/status-check.028c5b059149a81f7787.hot-update.js": "/chunks/status-check.028c5b059149a81f7787.hot-update.js",
|
|
||||||
"/chunks/status-check.17d9938802d2e0de939e.hot-update.js": "/chunks/status-check.17d9938802d2e0de939e.hot-update.js",
|
|
||||||
"/chunks/status-check.55864bdb9120e9c5dec2.hot-update.js": "/chunks/status-check.55864bdb9120e9c5dec2.hot-update.js",
|
|
||||||
"/chunks/status-check.89f667b0b909a3f26fdc.hot-update.js": "/chunks/status-check.89f667b0b909a3f26fdc.hot-update.js",
|
|
||||||
"/chunks/status-check.046ee03118743db52823.hot-update.js": "/chunks/status-check.046ee03118743db52823.hot-update.js",
|
|
||||||
"/chunks/status-check.369a05557ff60fd9dc18.hot-update.js": "/chunks/status-check.369a05557ff60fd9dc18.hot-update.js",
|
|
||||||
"/chunks/status-check.75d1417fa31fbbcfda5c.hot-update.js": "/chunks/status-check.75d1417fa31fbbcfda5c.hot-update.js",
|
|
||||||
"/chunks/status-check.2556456bff5ae93f32ed.hot-update.js": "/chunks/status-check.2556456bff5ae93f32ed.hot-update.js",
|
|
||||||
"/chunks/status-check.83ba79669c740c10b6ee.hot-update.js": "/chunks/status-check.83ba79669c740c10b6ee.hot-update.js",
|
|
||||||
"/chunks/status-check.09bab771f6e1f18dab46.hot-update.js": "/chunks/status-check.09bab771f6e1f18dab46.hot-update.js",
|
|
||||||
"/chunks/status-check.02c1726eaaded87b4c41.hot-update.js": "/chunks/status-check.02c1726eaaded87b4c41.hot-update.js",
|
|
||||||
"/chunks/status-check.a8adf92deeeda8925b60.hot-update.js": "/chunks/status-check.a8adf92deeeda8925b60.hot-update.js",
|
|
||||||
"/chunks/status-check.2deadcd44fb48105d730.hot-update.js": "/chunks/status-check.2deadcd44fb48105d730.hot-update.js",
|
|
||||||
"/chunks/status-check.839642e4f10111e58a22.hot-update.js": "/chunks/status-check.839642e4f10111e58a22.hot-update.js",
|
|
||||||
"/chunks/status-check.6ce31ad99aa96d5b5993.hot-update.js": "/chunks/status-check.6ce31ad99aa96d5b5993.hot-update.js",
|
|
||||||
"/chunks/status-check.701cf5a929649d21713e.hot-update.js": "/chunks/status-check.701cf5a929649d21713e.hot-update.js",
|
|
||||||
"/chunks/status-check.3e4358af3c0450adfd95.hot-update.js": "/chunks/status-check.3e4358af3c0450adfd95.hot-update.js",
|
|
||||||
"/chunks/status-check.01efdf5080444cc90af5.hot-update.js": "/chunks/status-check.01efdf5080444cc90af5.hot-update.js",
|
|
||||||
"/chunks/status-check.846f9c7f5da907550aaf.hot-update.js": "/chunks/status-check.846f9c7f5da907550aaf.hot-update.js",
|
|
||||||
"/chunks/status-check.024478ce34199ac7844b.hot-update.js": "/chunks/status-check.024478ce34199ac7844b.hot-update.js",
|
|
||||||
"/chunks/status-check.4f72acb05a725e6eca35.hot-update.js": "/chunks/status-check.4f72acb05a725e6eca35.hot-update.js",
|
|
||||||
"/chunks/status-check.3532526f22a4041a748b.hot-update.js": "/chunks/status-check.3532526f22a4041a748b.hot-update.js",
|
|
||||||
"/chunks/status-check.649a7aee2ae9580df2eb.hot-update.js": "/chunks/status-check.649a7aee2ae9580df2eb.hot-update.js",
|
|
||||||
"/chunks/status-check.4c850b632e7e0d2b61fa.hot-update.js": "/chunks/status-check.4c850b632e7e0d2b61fa.hot-update.js",
|
|
||||||
"/chunks/status-check.1c443b9b41fa0e557015.hot-update.js": "/chunks/status-check.1c443b9b41fa0e557015.hot-update.js",
|
|
||||||
"/chunks/status-check.43cd10467f8145ab8b8a.hot-update.js": "/chunks/status-check.43cd10467f8145ab8b8a.hot-update.js",
|
|
||||||
"/chunks/status-check.d481f098122f8655e168.hot-update.js": "/chunks/status-check.d481f098122f8655e168.hot-update.js",
|
|
||||||
"/chunks/status-check.a2c752fc5e7dbfc99947.hot-update.js": "/chunks/status-check.a2c752fc5e7dbfc99947.hot-update.js",
|
|
||||||
"/chunks/status-check.277b6609c757ec412ed6.hot-update.js": "/chunks/status-check.277b6609c757ec412ed6.hot-update.js",
|
|
||||||
"/chunks/status-check.5644c5af469338e1e03b.hot-update.js": "/chunks/status-check.5644c5af469338e1e03b.hot-update.js",
|
|
||||||
"/chunks/status-check.5f89e0e74f0a67dfe6ea.hot-update.js": "/chunks/status-check.5f89e0e74f0a67dfe6ea.hot-update.js",
|
|
||||||
"/chunks/status-check.5766b48d22a243437a6b.hot-update.js": "/chunks/status-check.5766b48d22a243437a6b.hot-update.js",
|
|
||||||
"/chunks/status-check.113f6b7ae77db4eac24f.hot-update.js": "/chunks/status-check.113f6b7ae77db4eac24f.hot-update.js",
|
|
||||||
"/chunks/status-check.bad00428f8bd7830ccc2.hot-update.js": "/chunks/status-check.bad00428f8bd7830ccc2.hot-update.js",
|
|
||||||
"/chunks/status-check.8e8b19f34cd29d04c28d.hot-update.js": "/chunks/status-check.8e8b19f34cd29d04c28d.hot-update.js",
|
|
||||||
"/chunks/status-check.7acf77341bdc0fd0843e.hot-update.js": "/chunks/status-check.7acf77341bdc0fd0843e.hot-update.js",
|
|
||||||
"/chunks/status-check.8959cc673db134489b96.hot-update.js": "/chunks/status-check.8959cc673db134489b96.hot-update.js",
|
|
||||||
"/chunks/status-check.0f0f5fd801d84fd294f2.hot-update.js": "/chunks/status-check.0f0f5fd801d84fd294f2.hot-update.js",
|
|
||||||
"/chunks/status-check.4a7ed4b9a955f6ef0258.hot-update.js": "/chunks/status-check.4a7ed4b9a955f6ef0258.hot-update.js",
|
|
||||||
"/chunks/status-check.42f2561f7ed01edb7b9e.hot-update.js": "/chunks/status-check.42f2561f7ed01edb7b9e.hot-update.js",
|
|
||||||
"/chunks/status-check.307cbf84fac83c53b419.hot-update.js": "/chunks/status-check.307cbf84fac83c53b419.hot-update.js",
|
|
||||||
"/chunks/status-check.f9a2880175ec95388827.hot-update.js": "/chunks/status-check.f9a2880175ec95388827.hot-update.js",
|
|
||||||
"/chunks/status-check.0c7c19c8fb32b76d9cfe.hot-update.js": "/chunks/status-check.0c7c19c8fb32b76d9cfe.hot-update.js",
|
|
||||||
"/chunks/status-check.dfa86748f8af397925a8.hot-update.js": "/chunks/status-check.dfa86748f8af397925a8.hot-update.js",
|
|
||||||
"/chunks/status-check.34bdf238910f0b66a954.hot-update.js": "/chunks/status-check.34bdf238910f0b66a954.hot-update.js",
|
|
||||||
"/chunks/status-check.21b2ade29ea985949dfa.hot-update.js": "/chunks/status-check.21b2ade29ea985949dfa.hot-update.js",
|
|
||||||
"/chunks/status-check.baa7022569488793f294.hot-update.js": "/chunks/status-check.baa7022569488793f294.hot-update.js",
|
|
||||||
"/chunks/status-check.48fe84b10d2b825983e8.hot-update.js": "/chunks/status-check.48fe84b10d2b825983e8.hot-update.js",
|
|
||||||
"/chunks/status-check.9cd90094c730296236af.hot-update.js": "/chunks/status-check.9cd90094c730296236af.hot-update.js",
|
|
||||||
"/chunks/status-check.b6ba8f66b0c827f642e0.hot-update.js": "/chunks/status-check.b6ba8f66b0c827f642e0.hot-update.js",
|
|
||||||
"/chunks/status-check.063a157f083452b8b125.hot-update.js": "/chunks/status-check.063a157f083452b8b125.hot-update.js",
|
|
||||||
"/chunks/status-check.c2ad5ae060ef91ab6871.hot-update.js": "/chunks/status-check.c2ad5ae060ef91ab6871.hot-update.js",
|
|
||||||
"/chunks/status-check.3891829a59fb48de60ce.hot-update.js": "/chunks/status-check.3891829a59fb48de60ce.hot-update.js",
|
|
||||||
"/chunks/status-check.b8524057c92cf78e2417.hot-update.js": "/chunks/status-check.b8524057c92cf78e2417.hot-update.js",
|
|
||||||
"/chunks/status-check.c2c2b27fb8e745ed8963.hot-update.js": "/chunks/status-check.c2c2b27fb8e745ed8963.hot-update.js",
|
|
||||||
"/chunks/status-check.15d6b6e8f8475864a673.hot-update.js": "/chunks/status-check.15d6b6e8f8475864a673.hot-update.js",
|
|
||||||
"/chunks/status-check.e1e749b26d87429a53a5.hot-update.js": "/chunks/status-check.e1e749b26d87429a53a5.hot-update.js",
|
|
||||||
"/chunks/status-check.342fab583e418b3ebbed.hot-update.js": "/chunks/status-check.342fab583e418b3ebbed.hot-update.js",
|
|
||||||
"/chunks/status-check.874b6be18d7aec08c953.hot-update.js": "/chunks/status-check.874b6be18d7aec08c953.hot-update.js",
|
|
||||||
"/chunks/status-check.e9174089178511cfce23.hot-update.js": "/chunks/status-check.e9174089178511cfce23.hot-update.js",
|
|
||||||
"/chunks/status-check.fd3ef69c9b6f81c92394.hot-update.js": "/chunks/status-check.fd3ef69c9b6f81c92394.hot-update.js",
|
|
||||||
"/chunks/status-check.78ba39dc0f31677098e8.hot-update.js": "/chunks/status-check.78ba39dc0f31677098e8.hot-update.js",
|
|
||||||
"/chunks/status-check.3be338b4385837e5654a.hot-update.js": "/chunks/status-check.3be338b4385837e5654a.hot-update.js",
|
|
||||||
"/chunks/status-check.2aab334f1e78b69f9dda.hot-update.js": "/chunks/status-check.2aab334f1e78b69f9dda.hot-update.js",
|
|
||||||
"/chunks/status-check.5149b186c7ce6ea2480c.hot-update.js": "/chunks/status-check.5149b186c7ce6ea2480c.hot-update.js",
|
|
||||||
"/chunks/status-check.25a5d00d0b6ac88049aa.hot-update.js": "/chunks/status-check.25a5d00d0b6ac88049aa.hot-update.js",
|
|
||||||
"/chunks/status-check.a63a1d526dfed0a76b1e.hot-update.js": "/chunks/status-check.a63a1d526dfed0a76b1e.hot-update.js",
|
|
||||||
"/chunks/status-check.57c6ee73eb5756b44f65.hot-update.js": "/chunks/status-check.57c6ee73eb5756b44f65.hot-update.js",
|
|
||||||
"/chunks/status-check.655180fb3bb8f2efd7ae.hot-update.js": "/chunks/status-check.655180fb3bb8f2efd7ae.hot-update.js",
|
|
||||||
"/chunks/status-check.29342b5167bd43d568f5.hot-update.js": "/chunks/status-check.29342b5167bd43d568f5.hot-update.js",
|
|
||||||
"/chunks/status-check.df584bec143167d59b30.hot-update.js": "/chunks/status-check.df584bec143167d59b30.hot-update.js",
|
|
||||||
"/chunks/status-check.25ff987a9d155f6a08c9.hot-update.js": "/chunks/status-check.25ff987a9d155f6a08c9.hot-update.js",
|
|
||||||
"/chunks/status-check.9ddbb495101d3b822daf.hot-update.js": "/chunks/status-check.9ddbb495101d3b822daf.hot-update.js",
|
|
||||||
"/chunks/status-check.1b4fc4962eb0a2abf3dd.hot-update.js": "/chunks/status-check.1b4fc4962eb0a2abf3dd.hot-update.js",
|
|
||||||
"/chunks/status-check.ec77ec1f605d9f475cca.hot-update.js": "/chunks/status-check.ec77ec1f605d9f475cca.hot-update.js",
|
|
||||||
"/chunks/status-check.61056a5eacdc788fdb48.hot-update.js": "/chunks/status-check.61056a5eacdc788fdb48.hot-update.js",
|
|
||||||
"/chunks/status-check.de33b68974f5a3e9343d.hot-update.js": "/chunks/status-check.de33b68974f5a3e9343d.hot-update.js",
|
|
||||||
"/chunks/status-check.6deee25c3fa2227ac05c.hot-update.js": "/chunks/status-check.6deee25c3fa2227ac05c.hot-update.js",
|
|
||||||
"/js/main.346469da6ba011c0109f.hot-update.js": "/js/main.346469da6ba011c0109f.hot-update.js",
|
|
||||||
"/chunks/status-check.346469da6ba011c0109f.hot-update.js": "/chunks/status-check.346469da6ba011c0109f.hot-update.js",
|
|
||||||
"/js/main.fed47f21bf43ddf8070d.hot-update.js": "/js/main.fed47f21bf43ddf8070d.hot-update.js",
|
|
||||||
"/chunks/status-check.fed47f21bf43ddf8070d.hot-update.js": "/chunks/status-check.fed47f21bf43ddf8070d.hot-update.js",
|
|
||||||
"/chunks/status-check.a6bbcb26f56eeb17115c.hot-update.js": "/chunks/status-check.a6bbcb26f56eeb17115c.hot-update.js",
|
|
||||||
"/chunks/status-check.2110cbfc3b787f160276.hot-update.js": "/chunks/status-check.2110cbfc3b787f160276.hot-update.js",
|
|
||||||
"/chunks/status-check.f24b656e0468f2d00b4f.hot-update.js": "/chunks/status-check.f24b656e0468f2d00b4f.hot-update.js",
|
|
||||||
"/chunks/status-check.05b0553aadf9779806cd.hot-update.js": "/chunks/status-check.05b0553aadf9779806cd.hot-update.js",
|
|
||||||
"/chunks/status-check.13342e70f59140ae74c2.hot-update.js": "/chunks/status-check.13342e70f59140ae74c2.hot-update.js",
|
|
||||||
"/chunks/status-check.87e610af0ba29a732796.hot-update.js": "/chunks/status-check.87e610af0ba29a732796.hot-update.js",
|
|
||||||
"/chunks/status-check.9e087dc2b137ef2c85cc.hot-update.js": "/chunks/status-check.9e087dc2b137ef2c85cc.hot-update.js",
|
|
||||||
"/chunks/status-check.d7e06b44ad2eb06686bb.hot-update.js": "/chunks/status-check.d7e06b44ad2eb06686bb.hot-update.js",
|
|
||||||
"/chunks/status-check.7d330409915d9d7d53e8.hot-update.js": "/chunks/status-check.7d330409915d9d7d53e8.hot-update.js",
|
|
||||||
"/chunks/admin-account.b0c3374208474353d7fe.hot-update.js": "/chunks/admin-account.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/app-setup.b0c3374208474353d7fe.hot-update.js": "/chunks/app-setup.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/billings-detail.b0c3374208474353d7fe.hot-update.js": "/chunks/billings-detail.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/database.b0c3374208474353d7fe.hot-update.js": "/chunks/database.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/environment-setup.b0c3374208474353d7fe.hot-update.js": "/chunks/environment-setup.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/installation-disclaimer.b0c3374208474353d7fe.hot-update.js": "/chunks/installation-disclaimer.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/purchase-code.b0c3374208474353d7fe.hot-update.js": "/chunks/purchase-code.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/stripe-credentials.b0c3374208474353d7fe.hot-update.js": "/chunks/stripe-credentials.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/subscription-plans.b0c3374208474353d7fe.hot-update.js": "/chunks/subscription-plans.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/subscription-service.b0c3374208474353d7fe.hot-update.js": "/chunks/subscription-service.b0c3374208474353d7fe.hot-update.js",
|
|
||||||
"/chunks/status-check.0f14031d4868f0989dd6.hot-update.js": "/chunks/status-check.0f14031d4868f0989dd6.hot-update.js",
|
|
||||||
"/chunks/status-check.b2ac3607bcf6295b4d10.hot-update.js": "/chunks/status-check.b2ac3607bcf6295b4d10.hot-update.js",
|
|
||||||
"/chunks/status-check.f316b77b0d63454fb2b0.hot-update.js": "/chunks/status-check.f316b77b0d63454fb2b0.hot-update.js",
|
|
||||||
"/chunks/status-check.cba5e0e686d4165d0e5b.hot-update.js": "/chunks/status-check.cba5e0e686d4165d0e5b.hot-update.js",
|
|
||||||
"/chunks/status-check.875ff8ea9b5f6b427e3d.hot-update.js": "/chunks/status-check.875ff8ea9b5f6b427e3d.hot-update.js",
|
|
||||||
"/chunks/status-check.12d2c68ca5d98223766c.hot-update.js": "/chunks/status-check.12d2c68ca5d98223766c.hot-update.js",
|
|
||||||
"/chunks/status-check.7920c3c8d544ef1e8dfa.hot-update.js": "/chunks/status-check.7920c3c8d544ef1e8dfa.hot-update.js",
|
|
||||||
"/chunks/status-check.650821558473b8202711.hot-update.js": "/chunks/status-check.650821558473b8202711.hot-update.js",
|
|
||||||
"/js/main.fe5e650dee5a1bb1fc13.hot-update.js": "/js/main.fe5e650dee5a1bb1fc13.hot-update.js",
|
|
||||||
"/chunks/setup-wizard.72c41776eacb54277e7b.hot-update.js": "/chunks/setup-wizard.72c41776eacb54277e7b.hot-update.js",
|
|
||||||
"/js/main.1a7a79423134ff81c39e.hot-update.js": "/js/main.1a7a79423134ff81c39e.hot-update.js",
|
|
||||||
"/chunks/status-check.43c5e2ea66b5c644abaa.hot-update.js": "/chunks/status-check.43c5e2ea66b5c644abaa.hot-update.js",
|
|
||||||
"/chunks/status-check.0407d7cadd6459a2005a.hot-update.js": "/chunks/status-check.0407d7cadd6459a2005a.hot-update.js",
|
|
||||||
"/chunks/status-check.7a654201d619492b9376.hot-update.js": "/chunks/status-check.7a654201d619492b9376.hot-update.js",
|
|
||||||
"/chunks/status-check.031b18740a152e7a4afe.hot-update.js": "/chunks/status-check.031b18740a152e7a4afe.hot-update.js",
|
|
||||||
"/chunks/status-check.7eb7825dea3966215cac.hot-update.js": "/chunks/status-check.7eb7825dea3966215cac.hot-update.js",
|
|
||||||
"/chunks/status-check.20d5dcc79d3a534cb81f.hot-update.js": "/chunks/status-check.20d5dcc79d3a534cb81f.hot-update.js",
|
|
||||||
"/chunks/status-check.46c1ceffd07c9cd4efd7.hot-update.js": "/chunks/status-check.46c1ceffd07c9cd4efd7.hot-update.js",
|
|
||||||
"/chunks/status-check.2c09dddbdc08be3cff85.hot-update.js": "/chunks/status-check.2c09dddbdc08be3cff85.hot-update.js",
|
|
||||||
"/chunks/status-check.cfd5dfab739238654232.hot-update.js": "/chunks/status-check.cfd5dfab739238654232.hot-update.js",
|
|
||||||
"/chunks/status-check.4545d2bb3a274c9d33e6.hot-update.js": "/chunks/status-check.4545d2bb3a274c9d33e6.hot-update.js",
|
|
||||||
"/chunks/status-check.3059fc882bb7470ea906.hot-update.js": "/chunks/status-check.3059fc882bb7470ea906.hot-update.js",
|
|
||||||
"/chunks/status-check.fabc216483cd1a46178f.hot-update.js": "/chunks/status-check.fabc216483cd1a46178f.hot-update.js",
|
|
||||||
"/chunks/status-check.2173dc6d5f4e6a54ee7c.hot-update.js": "/chunks/status-check.2173dc6d5f4e6a54ee7c.hot-update.js",
|
|
||||||
"/chunks/status-check.98c68242f87b96f7722c.hot-update.js": "/chunks/status-check.98c68242f87b96f7722c.hot-update.js",
|
|
||||||
"/chunks/status-check.4b98c68a29333a6337cc.hot-update.js": "/chunks/status-check.4b98c68a29333a6337cc.hot-update.js",
|
|
||||||
"/chunks/status-check.7178131f4e152a536f0e.hot-update.js": "/chunks/status-check.7178131f4e152a536f0e.hot-update.js",
|
|
||||||
"/chunks/status-check.807b117afc2ff10989b5.hot-update.js": "/chunks/status-check.807b117afc2ff10989b5.hot-update.js",
|
|
||||||
"/chunks/status-check.d6a3ce2c20f008057804.hot-update.js": "/chunks/status-check.d6a3ce2c20f008057804.hot-update.js",
|
|
||||||
"/chunks/status-check.8d8bf142eb151aa57a29.hot-update.js": "/chunks/status-check.8d8bf142eb151aa57a29.hot-update.js",
|
|
||||||
"/chunks/status-check.362d9498a4fd7f2a55c8.hot-update.js": "/chunks/status-check.362d9498a4fd7f2a55c8.hot-update.js"
|
|
||||||
}
|
}
|
||||||
|
|||||||
44
resources/js/store/modules/fileFunctions.js
vendored
44
resources/js/store/modules/fileFunctions.js
vendored
@@ -15,56 +15,28 @@ const defaultState = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
downloadFolder: ({commit, getters}, folder) => {
|
downloadFolder: ({getters}, folder) => {
|
||||||
|
|
||||||
commit('PROCESSING_POPUP', {
|
|
||||||
title: i18n.t('popup_zipping.title'),
|
|
||||||
message: i18n.t('popup_zipping.message')
|
|
||||||
})
|
|
||||||
|
|
||||||
let route = getters.sharedDetail
|
let route = getters.sharedDetail
|
||||||
? `/api/zip/folder/${folder.id}/${router.currentRoute.params.token}`
|
? `/api/zip/folder/${folder.id}/${router.currentRoute.params.token}`
|
||||||
: `/api/zip/folder/${folder.id}`
|
: `/api/zip/folder/${folder.id}`
|
||||||
|
|
||||||
axios.get(route)
|
Vue.prototype.$downloadFile(route, 'files.zip')
|
||||||
.then(response => {
|
|
||||||
Vue.prototype.$downloadFile(response.data.url, response.data.name)
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
Vue.prototype.$isSomethingWrong()
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
commit('PROCESSING_POPUP', undefined)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
downloadFiles: ({commit, getters}) => {
|
downloadFiles: ({getters}) => {
|
||||||
let files = []
|
let files = []
|
||||||
|
|
||||||
// get ids of selected files
|
// get ids of selected files
|
||||||
getters.clipboard.forEach(file => files.push(file.id))
|
getters.clipboard.forEach(file => files.push(file.id))
|
||||||
|
|
||||||
|
let ids = files.join(',')
|
||||||
|
|
||||||
// Get route
|
// Get route
|
||||||
let route = getters.sharedDetail
|
let route = getters.sharedDetail
|
||||||
? `/api/zip/files/${router.currentRoute.params.token}`
|
? `/api/zip/files/${router.currentRoute.params.token}/?ids=${ids}`
|
||||||
: '/api/zip/files'
|
: `/api/zip/files?ids=${ids}`
|
||||||
|
|
||||||
commit('PROCESSING_POPUP', {
|
Vue.prototype.$downloadFile(route, 'files.zip')
|
||||||
title: i18n.t('popup_zipping.title'),
|
|
||||||
message: i18n.t('popup_zipping.message'),
|
|
||||||
})
|
|
||||||
|
|
||||||
axios.post(route, {
|
|
||||||
items: files
|
|
||||||
})
|
|
||||||
.then(response => {
|
|
||||||
Vue.prototype.$downloadFile(response.data.url, response.data.name)
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
Vue.prototype.$isSomethingWrong()
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
commit('PROCESSING_POPUP', undefined)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
moveItem: ({commit, getters, dispatch}, {to_item, noSelectedItem}) => {
|
moveItem: ({commit, getters, dispatch}, {to_item, noSelectedItem}) => {
|
||||||
|
|
||||||
|
|||||||
@@ -81,5 +81,5 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
|||||||
Route::post('/move', MoveFileOrFolderController::class);
|
Route::post('/move', MoveFileOrFolderController::class);
|
||||||
|
|
||||||
Route::get('/zip/folder/{id}', ZipFolderController::class);
|
Route::get('/zip/folder/{id}', ZipFolderController::class);
|
||||||
Route::post('/zip/files', ZipFilesController::class);
|
Route::get('/zip/files', ZipFilesController::class);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Domain\Homepage\Controllers;
|
namespace Domain\Homepage\Controllers;
|
||||||
|
|
||||||
use Illuminate\View\View;
|
use Illuminate\View\View;
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
namespace Domain\SetupWizard\Controllers;
|
namespace Domain\SetupWizard\Controllers;
|
||||||
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
|
||||||
class PingAPIController extends Controller
|
class PingAPIController extends Controller
|
||||||
{
|
{
|
||||||
@@ -13,4 +10,4 @@ class PingAPIController extends Controller
|
|||||||
{
|
{
|
||||||
return response('pong');
|
return response('pong');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,42 +21,11 @@ class StoreEnvironmentSettingsController extends Controller
|
|||||||
],
|
],
|
||||||
's3' => [
|
's3' => [
|
||||||
'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null,
|
'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null,
|
||||||
'AWS_ACCESS_KEY_ID' => $request->input('storage.key') ?? null,
|
'S3_ACCESS_KEY_ID' => $request->input('storage.key') ?? null,
|
||||||
'AWS_SECRET_ACCESS_KEY' => $request->input('storage.secret') ?? null,
|
'S3_SECRET_ACCESS_KEY' => $request->input('storage.secret') ?? null,
|
||||||
'AWS_DEFAULT_REGION' => $request->input('storage.region') ?? null,
|
'S3_DEFAULT_REGION' => $request->input('storage.region') ?? null,
|
||||||
'AWS_BUCKET' => $request->input('storage.bucket') ?? null,
|
'S3_BUCKET' => $request->input('storage.bucket') ?? null,
|
||||||
],
|
'S3_URL' => $request->input('storage.endpoint') ?? null,
|
||||||
'spaces' => [
|
|
||||||
'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null,
|
|
||||||
'DO_SPACES_KEY' => $request->input('storage.key') ?? null,
|
|
||||||
'DO_SPACES_SECRET' => $request->input('storage.secret') ?? null,
|
|
||||||
'DO_SPACES_ENDPOINT' => $request->input('storage.endpoint') ?? null,
|
|
||||||
'DO_SPACES_REGION' => $request->input('storage.region') ?? null,
|
|
||||||
'DO_SPACES_BUCKET' => $request->input('storage.bucket') ?? null,
|
|
||||||
],
|
|
||||||
'wasabi' => [
|
|
||||||
'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null,
|
|
||||||
'WASABI_KEY' => $request->input('storage.key') ?? null,
|
|
||||||
'WASABI_SECRET' => $request->input('storage.secret') ?? null,
|
|
||||||
'WASABI_ENDPOINT' => $request->input('storage.endpoint') ?? null,
|
|
||||||
'WASABI_REGION' => $request->input('storage.region') ?? null,
|
|
||||||
'WASABI_BUCKET' => $request->input('storage.bucket') ?? null,
|
|
||||||
],
|
|
||||||
'backblaze' => [
|
|
||||||
'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null,
|
|
||||||
'BACKBLAZE_KEY' => $request->input('storage.key') ?? null,
|
|
||||||
'BACKBLAZE_SECRET' => $request->input('storage.secret') ?? null,
|
|
||||||
'BACKBLAZE_ENDPOINT' => $request->input('storage.endpoint') ?? null,
|
|
||||||
'BACKBLAZE_REGION' => $request->input('storage.region') ?? null,
|
|
||||||
'BACKBLAZE_BUCKET' => $request->input('storage.bucket') ?? null,
|
|
||||||
],
|
|
||||||
'oss' => [
|
|
||||||
'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null,
|
|
||||||
'OSS_ACCESS_KEY_ID' => $request->input('storage.key') ?? null,
|
|
||||||
'OSS_SECRET_ACCESS_KEY' => $request->input('storage.secret') ?? null,
|
|
||||||
'OSS_ENDPOINT' => $request->input('storage.endpoint') ?? null,
|
|
||||||
'OSS_REGION' => $request->input('storage.region') ?? null,
|
|
||||||
'OSS_BUCKET' => $request->input('storage.bucket') ?? null,
|
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -1,70 +1,44 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Zip\Actions;
|
namespace Domain\Zip\Actions;
|
||||||
|
|
||||||
use Domain\Zip\Models\Zip;
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\File;
|
use Illuminate\Support\Facades\File;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use League\Flysystem\FileNotFoundException;
|
use STS\ZipStream\ZipStreamFacade as Zip;
|
||||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
|
||||||
|
|
||||||
class ZipFilesAction
|
class ZipFilesAction
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Zip selected files, store it in /zip folder and retrieve zip record
|
* Zip selected files, and download it as response stream
|
||||||
*/
|
*/
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
File | Collection $files,
|
File | Collection $files,
|
||||||
?Share $shared = null,
|
?Share $shared = null,
|
||||||
): Zip {
|
): ZipStream {
|
||||||
// Local storage instance
|
|
||||||
$disk_local = Storage::disk('local');
|
|
||||||
|
|
||||||
// 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"));
|
|
||||||
} catch (FileNotFoundException $e) {
|
|
||||||
throw new HttpException(404, 'File not found');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get zip path
|
|
||||||
$zip_name = Str::random() . '.zip';
|
|
||||||
|
|
||||||
// Create zip
|
// Create zip
|
||||||
$zipper = new \Madnest\Madzipper\Madzipper;
|
$zip = Zip::create('files.zip');
|
||||||
$zip = $zipper->make($disk_local->path("zip/$zip_name"));
|
|
||||||
|
|
||||||
// Add files to zip
|
$files->map(function ($file) use ($zip) {
|
||||||
$files->each(function ($file) use ($zip, $disk_local) {
|
// get file path
|
||||||
$file_path = is_storage_driver('local')
|
$filePath = "files/$file->user_id/$file->basename";
|
||||||
? $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));
|
// Add file into zip
|
||||||
|
if (Storage::exists($filePath)) {
|
||||||
|
// local disk
|
||||||
|
if (is_storage_driver('local')) {
|
||||||
|
$zip->add(storage_path("app/files/$file->user_id/$file->basename"), $file->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// s3 client
|
||||||
|
if (is_storage_driver('s3')) {
|
||||||
|
$bucketName = config('filesystems.disks.s3.bucket');
|
||||||
|
|
||||||
|
$zip->add("s3://$bucketName/files/$file->user_id/$file->basename", $file->name);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Close zip
|
return $zip;
|
||||||
//$zip->close();
|
|
||||||
|
|
||||||
// Delete temporary files
|
|
||||||
if (! is_storage_driver('local')) {
|
|
||||||
$files->each(function ($file) use ($disk_local) {
|
|
||||||
$disk_local->delete("temp/$file->basename");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store zip record
|
|
||||||
return Zip::create([
|
|
||||||
'user_id' => $shared->user_id ?? Auth::id(),
|
|
||||||
'shared_token' => $shared->token ?? null,
|
|
||||||
'basename' => $zip_name,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Zip\Actions;
|
namespace Domain\Zip\Actions;
|
||||||
|
|
||||||
use Domain\Zip\Models\Zip;
|
use STS\ZipStream\ZipStream;
|
||||||
use Illuminate\Support\Str;
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\File;
|
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use League\Flysystem\FileNotFoundException;
|
use STS\ZipStream\ZipStreamFacade as Zip;
|
||||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
|
||||||
|
|
||||||
class ZipFolderAction
|
class ZipFolderAction
|
||||||
{
|
{
|
||||||
@@ -19,63 +16,43 @@ class ZipFolderAction
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
$id,
|
$id,
|
||||||
?Share $shared = null
|
?Share $shared = null
|
||||||
): Zip {
|
): ZipStream {
|
||||||
|
$user_id = Auth::id() ?? $shared->user_id;
|
||||||
|
|
||||||
// Get folder
|
// Get folder
|
||||||
$requested_folder = Folder::with(['folders.files', 'files'])
|
$requested_folder = Folder::with(['folders.files', 'files'])
|
||||||
->where('id', $id)
|
->where('id', $id)
|
||||||
->where('user_id', Auth::id() ?? $shared->user_id)
|
->where('user_id', $user_id)
|
||||||
->with('folders')
|
->with('folders')
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
$files = get_files_for_zip($requested_folder, collect([]));
|
$files = get_files_for_zip($requested_folder, collect([]));
|
||||||
|
|
||||||
// Local storage instance
|
// Create zip
|
||||||
$disk_local = Storage::disk('local');
|
$zip = Zip::create('files.zip');
|
||||||
|
|
||||||
// Move file to local storage from external storage service
|
foreach ($files as $file) {
|
||||||
if (! is_storage_driver('local')) {
|
// get file path
|
||||||
foreach ($files as $file) {
|
$filePath = "files/$user_id/{$file['basename']}";
|
||||||
try {
|
|
||||||
$disk_local->put("temp/{$file['basename']}", Storage::get("files/$requested_folder->user_id/{$file['basename']}"));
|
// Add file into zip
|
||||||
} catch (FileNotFoundException $e) {
|
if (Storage::exists($filePath)) {
|
||||||
throw new HttpException(404, 'File not found');
|
$zipDestination = "{$file['folder_path']}/{$file['name']}";
|
||||||
|
|
||||||
|
// local disk
|
||||||
|
if (is_storage_driver('local')) {
|
||||||
|
$zip->add(storage_path("app/files/$user_id/{$file['basename']}"), $zipDestination);
|
||||||
|
}
|
||||||
|
|
||||||
|
// s3 client
|
||||||
|
if (is_storage_driver('s3')) {
|
||||||
|
$bucketName = config('filesystems.disks.s3.bucket');
|
||||||
|
|
||||||
|
$zip->add("s3://$bucketName/files/$user_id/{$file['basename']}", $zipDestination);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get zip path
|
return $zip;
|
||||||
$zip_name = Str::random(16) . '-' . Str::slug($requested_folder->name) . '.zip';
|
|
||||||
|
|
||||||
// Create zip
|
|
||||||
$zipper = new \Madnest\Madzipper\Madzipper;
|
|
||||||
$zip = $zipper->make($disk_local->path("zip/$zip_name"));
|
|
||||||
|
|
||||||
// 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($file_path));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close zip
|
|
||||||
//$zip->close();
|
|
||||||
|
|
||||||
// Delete temporary files
|
|
||||||
if (! is_storage_driver('local')) {
|
|
||||||
foreach ($files as $file) {
|
|
||||||
$disk_local->delete('temp/' . $file['basename']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store zip record
|
|
||||||
return Zip::create([
|
|
||||||
'user_id' => $shared->user_id ?? Auth::id(),
|
|
||||||
'shared_token' => $shared->token ?? null,
|
|
||||||
'basename' => $zip_name,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ namespace Domain\Zip\Controllers;
|
|||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Zip\Actions\ZipFilesAction;
|
use Domain\Zip\Actions\ZipFilesAction;
|
||||||
|
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||||
|
use STS\ZipStream\ZipStream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guest download multiple files via zip
|
* Guest download multiple files via zip
|
||||||
@@ -18,6 +19,7 @@ class VisitorZipFilesController extends Controller
|
|||||||
public function __construct(
|
public function __construct(
|
||||||
private ProtectShareRecordAction $protectShareRecord,
|
private ProtectShareRecordAction $protectShareRecord,
|
||||||
private VerifyAccessToItemAction $verifyAccessToItem,
|
private VerifyAccessToItemAction $verifyAccessToItem,
|
||||||
|
private RecordDownloadAction $recordDownload,
|
||||||
private ZipFilesAction $zipFiles,
|
private ZipFilesAction $zipFiles,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
@@ -25,7 +27,7 @@ class VisitorZipFilesController extends Controller
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
Request $request,
|
Request $request,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): Response {
|
): ZipStream {
|
||||||
// Check ability to access protected share record
|
// Check ability to access protected share record
|
||||||
($this->protectShareRecord)($shared);
|
($this->protectShareRecord)($shared);
|
||||||
|
|
||||||
@@ -46,10 +48,11 @@ class VisitorZipFilesController extends Controller
|
|||||||
// Create zip
|
// Create zip
|
||||||
$zip = ($this->zipFiles)($files, $shared);
|
$zip = ($this->zipFiles)($files, $shared);
|
||||||
|
|
||||||
// Get file
|
($this->recordDownload)(
|
||||||
return response([
|
file_size: $zip->predictZipSize(),
|
||||||
'url' => url("/zip/{$zip->id}/public/{$shared->token}"),
|
user_id: $shared->user_id,
|
||||||
'name' => $zip->basename,
|
);
|
||||||
], 201);
|
|
||||||
|
return $zip;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Zip\Controllers;
|
namespace Domain\Zip\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
use STS\ZipStream\ZipStream;
|
||||||
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\Zip\Actions\ZipFolderAction;
|
use Domain\Zip\Actions\ZipFolderAction;
|
||||||
|
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ class VisitorZipFolderController extends Controller
|
|||||||
public function __construct(
|
public function __construct(
|
||||||
private ProtectShareRecordAction $protectShareRecord,
|
private ProtectShareRecordAction $protectShareRecord,
|
||||||
private VerifyAccessToItemAction $verifyAccessToItem,
|
private VerifyAccessToItemAction $verifyAccessToItem,
|
||||||
|
private RecordDownloadAction $recordDownload,
|
||||||
private ZipFolderAction $zipFolder,
|
private ZipFolderAction $zipFolder,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
@@ -24,7 +26,7 @@ class VisitorZipFolderController extends Controller
|
|||||||
public function __invoke(
|
public function __invoke(
|
||||||
string $id,
|
string $id,
|
||||||
Share $shared,
|
Share $shared,
|
||||||
): Response {
|
): ZipStream {
|
||||||
// Check ability to access protected share record
|
// Check ability to access protected share record
|
||||||
($this->protectShareRecord)($shared);
|
($this->protectShareRecord)($shared);
|
||||||
|
|
||||||
@@ -36,16 +38,17 @@ class VisitorZipFolderController extends Controller
|
|||||||
->where('id', $id);
|
->where('id', $id);
|
||||||
|
|
||||||
if (! $folder->exists()) {
|
if (! $folder->exists()) {
|
||||||
abort(404, 'Requested folder doesn\'t exists.');
|
abort(404, "Requested folder doesn't exists.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create zip
|
// Create zip
|
||||||
$zip = ($this->zipFolder)($id, $shared);
|
$zip = ($this->zipFolder)($id, $shared);
|
||||||
|
|
||||||
// Get file
|
($this->recordDownload)(
|
||||||
return response([
|
file_size: $zip->predictZipSize(),
|
||||||
'url' => url("/zip/{$zip->id}/public/{$shared->token}"),
|
user_id: $shared->user_id,
|
||||||
'name' => $zip->basename,
|
);
|
||||||
], 201);
|
|
||||||
|
return $zip;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,31 +2,35 @@
|
|||||||
namespace Domain\Zip\Controllers;
|
namespace Domain\Zip\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use STS\ZipStream\ZipStream;
|
||||||
use Domain\Files\Models\File;
|
use Domain\Files\Models\File;
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Domain\Zip\Actions\ZipFilesAction;
|
use Domain\Zip\Actions\ZipFilesAction;
|
||||||
|
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||||
|
|
||||||
class ZipFilesController extends Controller
|
class ZipFilesController extends Controller
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private ZipFilesAction $zipFiles,
|
private ZipFilesAction $zipFiles,
|
||||||
|
private RecordDownloadAction $recordDownload,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
Request $request,
|
Request $request,
|
||||||
): Response {
|
): ZipStream {
|
||||||
$files = File::whereUserId(Auth::id())
|
$files = File::whereUserId(Auth::id())
|
||||||
->whereIn('id', $request->input('items'))
|
->whereIn('id', explode(',', $request->get('ids')))
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
$zip = ($this->zipFiles)($files);
|
$zip = ($this->zipFiles)($files);
|
||||||
|
|
||||||
return response([
|
($this->recordDownload)(
|
||||||
'url' => route('zip', $zip->id),
|
file_size: $zip->predictZipSize(),
|
||||||
'name' => $zip->basename,
|
user_id: Auth::id(),
|
||||||
], 201);
|
);
|
||||||
|
|
||||||
|
return $zip;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,34 +1,38 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Zip\Controllers;
|
namespace Domain\Zip\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
use STS\ZipStream\ZipStream;
|
||||||
use Domain\Folders\Models\Folder;
|
use Domain\Folders\Models\Folder;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Domain\Zip\Actions\ZipFolderAction;
|
use Domain\Zip\Actions\ZipFolderAction;
|
||||||
|
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||||
|
|
||||||
class ZipFolderController extends Controller
|
class ZipFolderController extends Controller
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private ZipFolderAction $zipFolder,
|
private ZipFolderAction $zipFolder,
|
||||||
|
private RecordDownloadAction $recordDownload,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
string $id,
|
string $id,
|
||||||
): Response {
|
): ZipStream {
|
||||||
$folder = Folder::whereUserId(Auth::id())
|
$folder = Folder::whereUserId(Auth::id())
|
||||||
->where('id', $id);
|
->where('id', $id);
|
||||||
|
|
||||||
if (! $folder->exists()) {
|
if (! $folder->exists()) {
|
||||||
abort(404, "Requested folder doesn't exists.");
|
response("Requested folder doesn't exists.", 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$zip = ($this->zipFolder)($id);
|
$zip = ($this->zipFolder)($id);
|
||||||
|
|
||||||
return response([
|
($this->recordDownload)(
|
||||||
'url' => route('zip', $zip->id),
|
file_size: $zip->predictZipSize(),
|
||||||
'name' => $zip->basename,
|
user_id: Auth::id(),
|
||||||
], 201);
|
);
|
||||||
|
|
||||||
|
return $zip;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user