AWS Simple Storage Service-S3
Amazon S3 is a simple, value-object store that can be accessed via key and password.
S3 offers unlimited storage space and works under the pay-as you-use model. As the usage volume rises, service rates are less expensive.
S3 is a highly durable, highly available and infinitely scalable data storage infrastructure that can be accessed at very low prices.
S3 is Object level storage (not Block-level storage) and cannot host OS or dynamic websites.
S3 resources, e.g. S3 resources for e.g.
S3 Buckets
A bucket is a container that holds objects stored in S3
Buckets are useful for organizing the S3 namespace.
A bucket is owned and managed by the AWS account that created it. This account also helps identify the account responsible to pay storage and data transfer fees.
S3 bucket names are unique globally, regardless of where it was created by AWS. The namespace is shared with all AWS accounts.
S3 is a global service. However, buckets can only be created in the region that was specified at the time of creation.
Each object is contained within a bucket
There is no limit on the number of objects that can fit in a bucket. Also, there is no difference in the performance of multiple buckets or one bucket.
The S3 data model is flat, i.e. There are no folders or hierarchies within the buckets. The key name prefix, e.g. Folder1/Object1
Restrictions 100 buckets (soft limit), and a maximum 1000 buckets can each be created in an AWS account
Names for buckets should be unique globally and DNS compliant
Bucket ownership cannot be transferred
Buckets can’t be nested or placed in another bucket.
Once created, the bucket name and the region can’t be changed.
You can delete empty or non-empty buckets
S3 allows retrieval and pagination of 1000 objects.
Objects are fundamental entities that are stored in an S3 bucket.
A bucket can uniquely identify an object by its key name and version ID (if S3 is enabled on the bucket).
Objects are composed of metadata, object data, and otherKey is the object’s name and unique identifier
Value is the actual content that is stored
Metadata is data about data. It is a collection of name-value pairs that describes the object, for example. content-type, size and last modified. You can also specify custom metadata at the time an object is stored.
Version ID is the version ID for an object. It can be combined with the key to identify an object within a bucket.
Subresources provide additional information about an object
Access Control Information is used to control who has access to the objects
Two types of metadata can be stored in S3 objects: System metadataMetadata, such as the Last Modified Date, is controlled by the system. Only S3 objects can modify the value.
System metadata is information that the user can control, such as the storage class and encryption for the object.
User-defined metadata
The metadata that you have created is saved with the object. It is returned when the object is downloaded.
S3 does NOT process user-definable metadata.
Metadata user-defined must start with the prefix “x–amz-meta”, or else S3 won’t set the key-value pair you have defined.
After an object has been uploaded, the object metadata can’t be modified. You can only modify it by performing copy operation and setting it metadata
Unless explicitly copied using Cross Region replication, objects belonging to buckets that are located in a specific AWS area never leave that region.
Each object can have a maximum of 5 TB in size
You can retrieve an object as a whole, or as a portion.
Versioning is enabled so that both the current and previous versions of an object are retrievable.
ListingS3 allows you to list all keys within a bucket
A single listing request would return up to 1000 object keys with pagination.