Design Amazon S3 manages data with an
object storage architecture which aims to provide
scalability,
high availability, and
low latency with high
durability. Buckets can be managed using the console provided by Amazon S3, programmatically with the AWS
SDK, or the
REST application programming interface. Objects can be up to five
terabytes in size. Requests are authorized using an
access control list associated with each object bucket and support
versioning which is disabled by default. Since buckets are typically the size of an entire file system mount in other systems, this access control scheme is very coarse-grained. In other words, unique access controls cannot be associated with individual files. Amazon S3 can be used to replace static
web-hosting infrastructure with HTTP client-accessible objects, index document support, and error document support. The Amazon AWS authentication mechanism allows the creation of authenticated URLs, valid for a specified amount of time. Every item in a bucket can also be served as a
BitTorrent feed. The Amazon S3 store can act as a seed host for a
torrent and any BitTorrent client can retrieve the file. This can drastically reduce the bandwidth cost for the download of popular objects. A bucket can be configured to save HTTP log information to a sibling bucket; this can be used in
data mining operations. Various
User Mode File System (FUSE)–based file systems for
Linux or other Unix-like operating systems can be used to mount an S3 bucket as a file system. The semantics of the Amazon S3 file system are not that of a
POSIX file system, so the file system may not behave entirely as expected. Implementations include
Rclone and AWS's own Mountpoint for S3.
Amazon S3 storage classes Amazon S3 offers nine different storage classes with different levels of durability, availability, and performance requirements. • Amazon S3 Standard is the default. It is general purpose storage for frequently accessed data. • Amazon S3 Express One Zone is a single-digit millisecond latency storage for frequently accessed data and latency-sensitive applications. It stores data only in one availability zone. The Amazon S3 Glacier storage classes above are distinct from
Amazon Glacier, which is a separate product with its own APIs.
File size limits An object in S3 can be between 0 bytes and 5 TB. If an object is larger than 5 TB, it must be divided into chunks prior to uploading. When uploading, Amazon S3 allows a maximum of 5 GB in a single upload operation; hence, objects larger than 5 GB must be uploaded via the S3 multipart upload API.
Scale As of 2025, S3 stores 500 trillion objects, 100s of
exabytes of data, serves 200 million requests per second, and peaks at about 1 petabyte per second in bandwidth. == Uses ==