Which solution will meet these requirements?
Store the video in the /tmp folder within the Lambda execution environment. Push a Lambda function URL to the customer.
Store the video in an Amazon Elastic File System (Amazon EFS) file system attached to the function. Generate a pre-signed URL for the video object and push the URL to the customer.
Store the video in Amazon S3. Generate a pre-signed URL for the video object and push the URL to the customer.
Store the video in an Amazon CloudFront distribution. Generate a pre-signed URL for the video object and push the URL to the customer.
Explanations:
Lambda’s /tmp directory is limited to 512 MB and is ephemeral, meaning data is deleted when the function completes. This storage is unsuitable for making videos accessible later.
While EFS can store files longer term, it is not ideal for direct customer access, and generating pre-signed URLs with EFS is not feasible as it lacks S3’s URL generation features.
Amazon S3 can store large files persistently, and pre-signed URLs allow secure, temporary access. S3 also supports the required access duration of at least 3 hours.
CloudFront is generally used to cache and distribute content, not store it. It would require S3 or another origin source to persist the video files for pre-signed URLs.