Interfaces - AWS Storage Services Overview


Amazon S3 provides standards-based REST web service application program interfaces (APIs) for both management and data operations. These APIs allow Amazon S3 objects to be stored in uniquely named buckets (top-level folders). Each object must have a unique object key (file name) that serves as an identifier for the object within that bucket. Although Amazon S3 is a web-based object store with a flat naming structure rather than a traditional file system, you can easily emulate a file system hierarchy (folder1/folder2/file) in Amazon S3 by creating object key names that correspond to the full path name of each file.

Most developers building applications on Amazon S3 use a higher-level toolkit or software development kit (SDK) that wraps the underlying REST API. AWS SDKs are available for Android, Browser, iOS, Java, .NET, Node.js, PHP, Python, Ruby, and Go. The integrated AWS Command Line Interface (AWS CLI) also provides a set of high-level, Linux-like Amazon S3 file commands for common operations, such as ls, cp, mv, sync, and so on. Using the AWS CLI for Amazon S3, you can perform recursive uploads and downloads using a single folder-level Amazon S3 command and also perform parallel transfers. You can also use the AWS CLI for command-line access to the low-level Amazon S3 API. Using the AWS Management Console, you can easily create and manage Amazon S3 buckets, upload and download objects, and browse the contents of your S3 buckets using a simple web-based user interface.

Additionally, you can use the Amazon S3 notification feature to receive notifications when certain events happen in your bucket. Currently, Amazon S3 can publish events when an object is uploaded or when an object is deleted.

Notifications can be issued to Amazon Simple Notification Service (SNS) topics, Amazon Simple Queue Service (SQS) queues, and AWS Lambda functions.