kopia lustrzana https://github.com/pixelfed/pixelfed
				
				
				
			Update MediaController, add fallback for local files that are later stored on S3 but still are referenced in cached objects remotely
							rodzic
							
								
									a1ab88a8ca
								
							
						
					
					
						commit
						4973cb4611
					
				|  | @ -3,18 +3,10 @@ | ||||||
| namespace App\Http\Controllers; | namespace App\Http\Controllers; | ||||||
| 
 | 
 | ||||||
| use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||||
| use Auth, Storage, URL; |  | ||||||
| use App\Media; | use App\Media; | ||||||
| use Image as Intervention; |  | ||||||
| use App\Jobs\ImageOptimizePipeline\ImageOptimize; |  | ||||||
| 
 | 
 | ||||||
| class MediaController extends Controller | class MediaController extends Controller | ||||||
| { | { | ||||||
| 	public function __construct() |  | ||||||
| 	{ |  | ||||||
| 		$this->middleware('auth'); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	public function index(Request $request) | 	public function index(Request $request) | ||||||
| 	{ | 	{ | ||||||
| 		//return view('settings.drive.index');
 | 		//return view('settings.drive.index');
 | ||||||
|  | @ -24,4 +16,16 @@ class MediaController extends Controller | ||||||
| 	{ | 	{ | ||||||
|         abort(400, 'Endpoint deprecated'); |         abort(400, 'Endpoint deprecated'); | ||||||
| 	}	 | 	}	 | ||||||
|  | 
 | ||||||
|  | 	public function fallbackRedirect(Request $request, $pid, $mhash, $uhash, $f) | ||||||
|  | 	{ | ||||||
|  | 		abort_if(!config_cache('pixelfed.cloud_storage'), 404); | ||||||
|  | 		$path = 'public/m/_v2/' . $pid . '/' . $mhash . '/' . $uhash . '/' . $f; | ||||||
|  | 		$media = Media::whereProfileId($pid) | ||||||
|  | 			->whereMediaPath($path) | ||||||
|  | 			->whereNotNull('cdn_url') | ||||||
|  | 			->firstOrFail(); | ||||||
|  | 
 | ||||||
|  | 		return redirect()->away($media->cdn_url); | ||||||
|  | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -616,6 +616,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact | ||||||
| 	Route::get('auth/invite/a/{code}', 'AdminInviteController@index'); | 	Route::get('auth/invite/a/{code}', 'AdminInviteController@index'); | ||||||
| 	Route::post('api/v1.1/auth/invite/admin/re', 'AdminInviteController@apiRegister')->middleware('throttle:5,1440'); | 	Route::post('api/v1.1/auth/invite/admin/re', 'AdminInviteController@apiRegister')->middleware('throttle:5,1440'); | ||||||
| 
 | 
 | ||||||
|  | 	Route::get('storage/m/_v2/{pid}/{mhash}/{uhash}/{f}', 'MediaController@fallbackRedirect'); | ||||||
| 	Route::get('stories/{username}', 'ProfileController@stories'); | 	Route::get('stories/{username}', 'ProfileController@stories'); | ||||||
| 	Route::get('p/{id}', 'StatusController@shortcodeRedirect'); | 	Route::get('p/{id}', 'StatusController@shortcodeRedirect'); | ||||||
| 	Route::get('c/{collection}', 'CollectionController@show'); | 	Route::get('c/{collection}', 'CollectionController@show'); | ||||||
|  |  | ||||||
		Ładowanie…
	
		Reference in New Issue
	
	 Daniel Supernault
						Daniel Supernault