You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
25 lines
690 B
25 lines
690 B
<?php |
|
|
|
namespace App\Utils; |
|
|
|
use Carbon\Carbon; |
|
use Illuminate\Support\Facades\Storage; |
|
|
|
class S3 |
|
{ |
|
public static function encodeURI($str) |
|
{ |
|
$revert = ['%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')', '%2F'=>'/']; |
|
return strtr(rawurlencode($str), $revert); |
|
} |
|
|
|
public static function signUrl($key){ |
|
$client = ((object)Storage::disk("s3"))->getClient(); |
|
$bucket = config("filesystems.disks.s3.bucket"); |
|
$command = $client->getCommand('GetObject', [ |
|
"Bucket" => $bucket, |
|
"Key" => $key |
|
]); |
|
return (string)$client->createPresignedRequest($command, Carbon::tomorrow())->getUri(); |
|
} |
|
}
|
|
|