For those of you who use Laravel, interacting with files is extremely simple thanks to the Storage Facade. The client uploads the files to the server and the server handles the upload to S3.
A presigned URL gives you access to the object identified in the URL, provided that the creator of the presigned URL has permissions to access that object. That is, if you receive a presigned URL to upload an object, you can upload the object only if the creator of the presigned URL has the necessary permissions to upload that object.
In short, what that means is that you can create a special URL that contains all the security credentials that are necessary to retrieve/upload the object.