Sai Addanki
Sai Addanki

Reputation: 81

Why AWS S3 uses objects and not file & directories

Why AWS S3 uses objects and not file & directories is there any specific reason to not have directories/folders in s3

Upvotes: 5

Views: 1578

Answers (1)

John Rotenstein
John Rotenstein

Reputation: 269282

You are welcome to use directories/folders in Amazon S3. However, please realise that they do not actually exist.

Amazon S3 is not a filesystem. It is an object storage service that is highly scalable, stores trillions of objects and serves millions of objects per second. To meet the demands of such scale, it has been designed as a Key-Value store. The name of the file is the Key and the contents of the file is the Object.

When a file is uploaded to a directory (eg cat.jpg is stored in the images directory), it is actually stored with a filename of images/cat.jpg. This makes is appear to be in the images directory, but the reality is that the directory does not exist -- rather, the name of the object includes the full path.

This will not impact your normal usage of Amazon S3. However, it is not possible to rename a directory because the directory does not exist. Instead, rename the file to rename the directory. For example:

aws s3 mv s3://my-bucket/images/cat.jpg s3://my-bucket/pictures/cat.jpg

This will cause the pictures directory to magically appear, with cat.jpg inside it. There is not need to create the directory first, because it doesn't actually exist. This is because the user interface is making it appear as though there are directories.

Bottom line: Feel free to use directories, but be aware that they do not actually exist and can't be renamed.

Upvotes: 8

Related Questions