mirror of
https://github.com/fergalmoran/OpnForm.git
synced 2026-01-19 23:14:01 +00:00
Initial commit
This commit is contained in:
46
app/Http/Controllers/Content/SignedStorageUrlController.php
Normal file
46
app/Http/Controllers/Content/SignedStorageUrlController.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Content;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Str;
|
||||
use Laravel\Vapor\Http\Controllers\SignedStorageUrlController as Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SignedStorageUrlController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new signed URL.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$this->ensureEnvironmentVariablesAreAvailable($request);
|
||||
$bucket = $request->input('bucket') ?: $_ENV['AWS_BUCKET'];
|
||||
|
||||
$client = $this->storageClient();
|
||||
|
||||
$uuid = (string) Str::uuid();
|
||||
|
||||
$expiresAfter = config('vapor.signed_storage_url_expires_after', 5);
|
||||
|
||||
$signedRequest = $client->createPresignedRequest(
|
||||
$this->createCommand($request, $client, $bucket, $key = ('tmp/'.$uuid)),
|
||||
sprintf('+%s minutes', $expiresAfter)
|
||||
);
|
||||
|
||||
$uri = $signedRequest->getUri();
|
||||
|
||||
return response()->json([
|
||||
'uuid' => $uuid,
|
||||
'bucket' => $bucket,
|
||||
'key' => $key,
|
||||
'url' => $uri->getScheme().'://'.$uri->getAuthority().$uri->getPath().'?'.$uri->getQuery(),
|
||||
'headers' => $this->headers($request, $signedRequest),
|
||||
], 201);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user