Reputation: 1753
I am trying to upload a file to AWS s3 bucket
public function fileTest(Request $request)
{
//this will create folder test inside my bucket and put the contents
$request->file->store('test','s3');
}
But the above code will create a folder named test
inside my bucket and put the file into it.
But i want to directly upload to the bucket
$request->file->store('s3');
I've tried above code but dosen't worked.
Upvotes: 1
Views: 8350
Reputation: 1906
In a very short solution.
Storage::disk('s3')->put("destination_path", file_get_contents("BinaryResourse"));
Upvotes: 0
Reputation: 1228
Put your file on s3 server
$agreement_contract_copy = $request->file('agreement_contract');
$filename = $id. '/agreement' . '_' . time() . '.pdf';
$student->agreement_copy = $filename;
$student->save();
Storage::disk('s3')->put($filename, file_get_contents($agreement_copy));
If you can not define as public so default its store as private and when you use private method so in file geting time used temp method as below. Get your file
Storage::disk('s3')->temporaryUrl
($student->agreement_copy, \Carbon\Carbon::now()->addMinutes(5))
$student->agreement_copy
Tested
Upvotes: 3
Reputation: 41
public function uploadFile (Request $request) {
$file = $request->file('file');
$imageName = 'uploads/' . $file->getClientOriginalName();
Storage::disk('s3')->put($imageName, file_get_contents($file));
Storage::disk('s3')->setVisibility($imageName, 'public');
$url = Storage::disk('s3')->url($imageName);
return Response::json(['success' => true, 'response' => $url]);
}
Upvotes: 3
Reputation: 1753
Solved my issue with following
$s3 = Storage::disk('s3');
$s3->put('',$request->file);
Shorthand
Storage::disk('s3')->put('',$request->file)
Upvotes: 2