- Newest
- Most votes
- Most comments
This is not normal behavior. The storage class itself (Standard vs. Glacier Instant Retrieval) should not directly affect how a video plays in an HTML5 video tag. Both storage classes provide millisecond access to your data.
The issue you're experiencing is likely related to how the content is being served rather than the storage class. When videos don't play in a browser but download instead, it's typically due to incorrect content headers. The most common causes are:
- Content-Type header: Make sure it's set to "video/mp4" (assuming your videos are MP4 format)
- Content-Disposition header: This should either be not set or set to "inline" (not "attachment")
When you upload objects to S3 through different methods (directly via console vs. through your application), these headers might be set differently. Your application might be setting the Content-Disposition header to "attachment" for the Standard storage class objects, which would cause browsers to download rather than play the video.
You can fix this by explicitly setting the correct headers when uploading or by modifying the metadata of existing objects:
aws s3 cp s3://your-bucket-name/video.mp4 s3://your-bucket-name/video.mp4 \
--metadata-directive REPLACE \
--content-type video/mp4 \
--content-disposition inline
For better video streaming performance overall, consider implementing Amazon CloudFront in front of your S3 bucket. This would improve load times and provide a better viewing experience for your users.
Sources
S3 Bucket links download video files instead of opening in browser | AWS re:Post
Hosting videos in S3 bucket | AWS re:Post
Relevant content
asked 4 years ago
asked 2 years ago

Based on https://aws.amazon.com/s3/storage-classes/glacier/instant-retrieval/, you can use videos in Glacier IR to retrieve files instantly.