mirror of https://github.com/pixelfed/pixelfed
Update changelog
parent
73eb9e36fc
commit
ae78129678
@ -0,0 +1,123 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
use App\Avatar;
|
||||||
|
use App\User;
|
||||||
|
use Storage;
|
||||||
|
use App\Util\Lexer\PrettyNumber;
|
||||||
|
|
||||||
|
class AvatarStorage extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The name and signature of the console command.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signature = 'avatar:storage';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The console command description.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $description = 'Manage avatar storage';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the console command.
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$this->info('Pixelfed Avatar Storage Manager');
|
||||||
|
$this->line(' ');
|
||||||
|
$segments = [
|
||||||
|
[
|
||||||
|
'Local',
|
||||||
|
Avatar::whereNull('is_remote')->count(),
|
||||||
|
PrettyNumber::size(Avatar::whereNull('is_remote')->sum('size'))
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'Remote',
|
||||||
|
Avatar::whereNotNull('is_remote')->count(),
|
||||||
|
PrettyNumber::size(Avatar::whereNotNull('is_remote')->sum('size'))
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'Cached (CDN)',
|
||||||
|
Avatar::whereNotNull('cdn_url')->count(),
|
||||||
|
PrettyNumber::size(Avatar::whereNotNull('cdn_url')->sum('size'))
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'Uncached',
|
||||||
|
Avatar::whereNull('is_remote')->whereNull('cdn_url')->count(),
|
||||||
|
PrettyNumber::size(Avatar::whereNull('is_remote')->whereNull('cdn_url')->sum('size'))
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'------------',
|
||||||
|
'----------',
|
||||||
|
'-----'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'Total',
|
||||||
|
Avatar::count(),
|
||||||
|
PrettyNumber::size(Avatar::sum('size'))
|
||||||
|
],
|
||||||
|
];
|
||||||
|
$this->table(
|
||||||
|
['Segment', 'Count', 'Space Used'],
|
||||||
|
$segments
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->line(' ');
|
||||||
|
|
||||||
|
if(config_cache('pixelfed.cloud_storage')) {
|
||||||
|
$this->info('✅ - Cloud storage configured');
|
||||||
|
$this->line(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(config_cache('instance.avatar.local_to_cloud')) {
|
||||||
|
$this->info('✅ - Store avatars on cloud filesystem');
|
||||||
|
$this->line(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(config_cache('pixelfed.cloud_storage') && config_cache('instance.avatar.local_to_cloud')) {
|
||||||
|
$disk = Storage::disk(config_cache('filesystems.cloud'));
|
||||||
|
$exists = $disk->exists('cache/avatars/default.jpg');
|
||||||
|
$state = $exists ? '✅' : '❌';
|
||||||
|
$msg = $state . ' - Cloud default avatar exists';
|
||||||
|
$this->info($msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
$choice = $this->choice(
|
||||||
|
'Select action:',
|
||||||
|
[
|
||||||
|
'Upload default avatar to cloud',
|
||||||
|
'Move local avatars to cloud',
|
||||||
|
'Move cloud avatars to local'
|
||||||
|
],
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
return $this->handleChoice($choice);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function handleChoice($id)
|
||||||
|
{
|
||||||
|
switch ($id) {
|
||||||
|
case 'Upload default avatar to cloud':
|
||||||
|
return $this->uploadDefaultAvatar();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function uploadDefaultAvatar()
|
||||||
|
{
|
||||||
|
$disk = Storage::disk(config_cache('filesystems.cloud'));
|
||||||
|
$disk->put('cache/avatars/default.jpg', Storage::get('public/avatars/default.jpg'));
|
||||||
|
Avatar::whereMediaPath('public/avatars/default.jpg')->update(['cdn_url' => $disk->url('cache/avatars/default.jpg')]);
|
||||||
|
$this->info('Successfully uploaded default avatar to cloud storage!');
|
||||||
|
$this->info($disk->url('cache/avatars/default.jpg'));
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue