forked from mirror/pixelfed
commit
1bdb9f4c33
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Media;
|
||||
use App\Services\MediaService;
|
||||
use App\Services\StatusService;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
ini_set('memory_limit', '-1');
|
||||
if(config_cache('pixelfed.cloud_storage') == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$disk = Storage::disk(config('filesystems.cloud'));
|
||||
$startUrl = $disk->url('test');
|
||||
if(!$startUrl) {
|
||||
return;
|
||||
}
|
||||
$baseUrl = substr($startUrl, 0, -4);
|
||||
$baseUrlLen = strlen($baseUrl);
|
||||
|
||||
foreach(Media::whereNotNull('cdn_url')->lazyById(200, 'id') as $media) {
|
||||
if($media->cdn_url == null) {
|
||||
continue;
|
||||
}
|
||||
$cdnPath = substr($media->cdn_url, $baseUrlLen);
|
||||
if(str_starts_with($cdnPath, '/')) {
|
||||
continue;
|
||||
}
|
||||
if(!str_starts_with($cdnPath, 'public/')) {
|
||||
continue;
|
||||
}
|
||||
if($cdnPath != $media->media_path) {
|
||||
$media->media_path = $cdnPath;
|
||||
$media->saveQuietly();
|
||||
if($media->status_id) {
|
||||
MediaService::del($media->status_id);
|
||||
StatusService::del($media->status_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue