

# Developing with Amazon S3 using the Amazon SDKs
<a name="sdk-general-information-section"></a>



Amazon software development kits (SDKs) are available for many popular programming languages. Each SDK provides an API, code examples, and documentation that make it easier for developers to build applications in their preferred language.

**Note**  
You can use Amazon Amplify for end-to-end fullstack development of web and mobile apps. Amplify Storage seamlessly integrates file storage and management capabilities into frontend web and mobile apps, built on top of Amazon S3. For more information, see [Storage](https://docs.amplify.aws/react/build-a-backend/storage/) in the Amplify user guide.


| SDK documentation | 
| --- | 
| [Amazon CLI](https://docs.amazonaws.cn/cli) | 
| [Amazon SDK for Java](https://docs.amazonaws.cn/sdk-for-java) | 
| [Amazon SDK for JavaScript](https://docs.amazonaws.cn/sdk-for-javascript) | 
| [Amazon SDK for .NET](https://docs.amazonaws.cn/sdk-for-net) | 
| [Amazon SDK for PHP](https://docs.amazonaws.cn/sdk-for-php) | 
| [Amazon Tools for PowerShell](https://docs.amazonaws.cn/powershell) | 
| [Amazon SDK for Python (Boto3)](https://docs.amazonaws.cn/pythonsdk) | 
| [Amazon SDK for Ruby](https://docs.amazonaws.cn/sdk-for-ruby) | 
| [Amazon SDK for SAP ABAP](https://docs.amazonaws.cn/sdk-for-sapabap) | 

For specific examples, see [Code examples for Amazon S3 using Amazon SDKs](service_code_examples.md).

## SDK Programming interfaces
<a name="sdk-programming-interfaces"></a>

Each Amazon SDK provides one or more programmatic interfaces for working with Amazon S3. Each SDK provides a low-level interface for Amazon S3, with methods that closely resemble API operations. Some SDKs provide high-level interfaces for Amazon S3, that are abstractions intended to simplify common use cases. 

For example, when you perform a multipart upload by using the low-level API operations, you use an operation to initiate the upload, another operation to upload parts, and a final operation to complete the upload. A high-level multipart upload API operation lets you to do all of the operations required for upload in a single API call. For examples, see [Uploading an object using multipart upload](https://docs.amazonaws.cn/AmazonS3/latest/userguide/mpu-upload-object.html) in the *Amazon S3 User Guide*.

Low-level API operations allow greater control over the upload. We recommend that you use the low-level API operations if you need to pause and resume uploads, vary part sizes during the upload, or begin uploads when you don't know the size of the data in advance.