Introduction to Amazon S3
Amazon S3 (Simple Storage Service) is a cloud-based object storage service that Amazon Web Services (AWS) provides. It is designed to store and retrieve any amount of data at any time from anywhere on the web.
An S3 bucket is a container that can hold an unlimited number of objects, each of which can be up to 5 terabytes. Objects can be anything from simple text files to complex multimedia content and are stored within the bucket as individual files.
S3 buckets are designed for durability, availability, and scalability. This means that data stored in S3 is highly reliable and accessible. Multiple copies of each object are stored in different locations to ensure data is available even during hardware failure or other issues.
S3 buckets can be used for various purposes, including hosting static websites, storing backups and archives, serving as a content repository for applications, and more. They can also be integrated with other AWS services, making it easy to build scalable, cloud-based applications.
Example
To upload an image to an AWS S3 bucket using Core API in multipart, you can follow these steps,
1. Create an Amazon S3 client object using your AWS credentials,
AmazonS3Client client = new AmazonS3Client(accessKey, secretKey, RegionEndpoint.USWest2);
2. Create a new TransferUtility object,
TransferUtility transferUtility = new TransferUtility(client);
3. Create a new TransferUtilityUploadRequest object,
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest
{
BucketName = bucketName,
Key = objectKey,
ContentType = "image/jpeg",
InputStream = file.InputStream,
CannedACL = S3CannedACL.PublicRead
};
Here, bucketName is the name of the S3 bucket, objectKey is the unique key for the object file.InputStream is the stream containing the image file and S3CannedACL.PublicRead specifies that the uploaded object will be publicly accessible.
4. Use the TransferUtility object to upload the file,
transferUtility.Upload(request);
5. The complete code will look like this,
AmazonS3Client client = new AmazonS3Client(accessKey, secretKey, RegionEndpoint.USWest2);
TransferUtility transferUtility = new TransferUtility(client);
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest
{
BucketName = bucketName,
Key = objectKey,
ContentType = "image/jpeg",
InputStream = file.InputStream,
CannedACL = S3CannedACL.PublicRead
};
transferUtility.Upload(request);
Make sure to replace accessKey, secretKey, bucketName, and objectKey with your own values.