What is @aws-sdk/client-s3?
The @aws-sdk/client-s3 npm package is a client library for Amazon Simple Storage Service (S3) that allows developers to interact with S3 services using JavaScript or TypeScript. It provides methods to perform operations such as creating and managing buckets, uploading and downloading objects, and managing access permissions.
What are @aws-sdk/client-s3's main functionalities?
Creating a Bucket
This feature allows you to create a new S3 bucket in a specified AWS region.
const { S3Client, CreateBucketCommand } = require('@aws-sdk/client-s3');
const client = new S3Client({ region: 'us-west-2' });
const command = new CreateBucketCommand({ Bucket: 'my-bucket-name' });
client.send(command);
Uploading an Object
This feature allows you to upload an object to a specified bucket in S3.
const { S3Client, PutObjectCommand } = require('@aws-sdk/client-s3');
const client = new S3Client({ region: 'us-west-2' });
const command = new PutObjectCommand({ Bucket: 'my-bucket-name', Key: 'my-object-key', Body: 'Hello, world!' });
client.send(command);
Downloading an Object
This feature allows you to download an object from S3 by specifying the bucket and object key.
const { S3Client, GetObjectCommand } = require('@aws-sdk/client-s3');
const client = new S3Client({ region: 'us-west-2' });
const command = new GetObjectCommand({ Bucket: 'my-bucket-name', Key: 'my-object-key' });
client.send(command).then((data) => console.log(data.Body));
Listing Objects in a Bucket
This feature allows you to list all objects in a specified S3 bucket.
const { S3Client, ListObjectsCommand } = require('@aws-sdk/client-s3');
const client = new S3Client({ region: 'us-west-2' });
const command = new ListObjectsCommand({ Bucket: 'my-bucket-name' });
client.send(command).then((data) => console.log(data.Contents));
Deleting an Object
This feature allows you to delete an object from a specified S3 bucket.
const { S3Client, DeleteObjectCommand } = require('@aws-sdk/client-s3');
const client = new S3Client({ region: 'us-west-2' });
const command = new DeleteObjectCommand({ Bucket: 'my-bucket-name', Key: 'my-object-key' });
client.send(command);
Other packages similar to @aws-sdk/client-s3
aws-sdk
The 'aws-sdk' package is the predecessor of '@aws-sdk/client-s3' and provides a comprehensive AWS SDK for JavaScript. It includes support for S3 and other AWS services. Compared to '@aws-sdk/client-s3', it is less modular and typically larger in size, which might affect bundle sizes in frontend applications.
s3
The 's3' package is a high-level client for Amazon S3 with a more simplified API. It provides easy-to-use methods for common S3 operations. It is not an official AWS SDK, and it may not support all S3 features or the latest AWS updates as '@aws-sdk/client-s3' does.
google-cloud/storage
The 'google-cloud/storage' package is a client library for Google Cloud Storage, which is similar to Amazon S3 but for Google Cloud Platform. It provides similar functionalities for object storage but is specific to Google's ecosystem and not directly comparable to '@aws-sdk/client-s3' which is for AWS.