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

<?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();
}
}