mirror of
https://github.com/snipe/snipe-it.git
synced 2024-11-13 17:14:10 -08:00
1d65781d8d
Signed-off-by: snipe <snipe@snipe.net>
29 lines
983 B
PHP
29 lines
983 B
PHP
<?php
|
|
|
|
namespace App\Helpers;
|
|
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
|
use Symfony\Component\HttpFoundation\StreamedResponse;
|
|
class StorageHelper
|
|
{
|
|
public static function downloader($filename, $disk = 'default') : BinaryFileResponse | RedirectResponse | StreamedResponse
|
|
{
|
|
if ($disk == 'default') {
|
|
$disk = config('filesystems.default');
|
|
}
|
|
switch (config("filesystems.disks.$disk.driver")) {
|
|
case 'local':
|
|
return response()->download(Storage::disk($disk)->path($filename)); //works for PRIVATE or public?!
|
|
|
|
case 's3':
|
|
return redirect()->away(Storage::disk($disk)->temporaryUrl($filename, now()->addMinutes(5))); //works for private or public, I guess?
|
|
|
|
default:
|
|
return Storage::disk($disk)->download($filename);
|
|
}
|
|
}
|
|
}
|