In many applications, users within the organization will not be the only ones to need access to the objects. Third-party applicants or end users themselves may need to access a bucket or an object within it. Keeping track of all of them and giving them a viewer's role would be theoretically painstaking and practically erroneous to the extent of being impossible.
A simple solution to this problem is to give them public URLs, but that would only give them read access to the object. If we want to provide read, write, and even delete access for a certain length of time, the solution is to use signed URLs. These are time-limited; we have to specify a period of validity while creating them. The details are as follows.