Что такое AWS-SDK?
AWS SDK (комплект для разработки программного обеспечения) помогает упростить кодирование, предоставляя объекты JavaScript для сервисов AWS. Это позволяет разработчикам получать доступ к AWS из кода JavaScript, который выполняется непосредственно в браузере. Он включает доступ к компонентам AWS, таким как Amazon S3, Amazon SNS, Amazon SQS, DynamoDB и другим.
Что такое сегмент S3?
Корзина Amazon S3 — это общедоступный ресурс облачного хранилища, доступный в Amazon Web Services (AWS) Simple Storage Service (S3), предложении объектного хранилища. Сегменты Amazon S3, похожие на файловые папки, хранят объекты, состоящие из данных и их описательных метаданных.
Настройка среды
Для создания приложения узла перейдите в каталог, в котором вы хотите создать проект, и откройте терминал:
После открытия терминала введите следующую команду:
npm init -y
После выполнения этой команды будут созданы файлы package.json и package-lock.json.
Добавление AWS-SDK
Выполните следующую команду, чтобы установить aws-sdk в текущий проект.
npm i aws-sdk
Теперь все ваши зависимости и среда готовы к разработке, теперь пришло время настроить учетную запись AWS.
Чтобы настроить свою учетную запись на AWS, вы можете подписаться на мой блог:
Создание службы операций корзины AWS S3
Создайте папку utils в каталоге вашего проекта и внутри utils добавьте файл aws-s3.js.
- Импортируйте aws-sdk
const AWS = require('aws-sdk');
- Создайте класс AWSS3Service и экспортируйте его.
module.exports = class AWSS3Service{ }
- Добавьте конструктор, чтобы получить регион сегментов s3, ключ доступа и секретный ключ извне класса.
module.exports = class AWSS3Service{ constructor(region, accesskey, secretkey){ this.region = region; this.accesskey = accesskey; this.secretkey = secretkey; } }
- Добавьте способ получения клиента AWS S3.
module.exports = class AWSS3Service{ constructor(region, accesskey, secretkey){ this.region = region; this.accesskey = accesskey; this.secretkey = secretkey; } getS3Client(){ return new AWS.S3({ region: this.region, apiVersion: 'latest', credentials: { accessKeyId: this.accesskey, secretAccessKey: this.secretkey } }) } }
- В методе getS3Client мы должны указать AWS-регион, apiVersion,и ваш ключ доступаи секретный ключ доступа. strong> создается для пользователя IAM, чтобы получить клиент корзины s3.
Создание корзины S3
Добавьте следующий метод для создания сегмента S3.
module.exports = class AWSS3Service{ constructor(region, accesskey, secretkey){ this.region = region; this.accesskey = accesskey; this.secretkey = secretkey; } getS3Client(){ return new AWS.S3({ region: this.region, apiVersion: 'latest', credentials: { accessKeyId: this.accesskey, secretAccessKey: this.secretkey } }) } createS3Bucket(){ let s3Client = this.getS3Client(); s3Client.createBucket({ Bucket: 'sms-bucket-from-node',//Your bucket name }, (error, success) => { if(error) console.log(error); console.log(success); }) } }
В этом фрагменте кода мы создаем корзину s3 с именем sms-bucket-from-node с клиентом s3, созданным с помощью ключей IAM. и регион
Загрузка файла в корзину S3
Добавьте следующий метод для загрузки объекта в базу S3.
module.exports = class AWSS3Service{ constructor(region, accesskey, secretkey){ this.region = region; this.accesskey = accesskey; this.secretkey = secretkey; } getS3Client(){ return new AWS.S3({ region: this.region, apiVersion: 'latest', credentials: { accessKeyId: this.accesskey, secretAccessKey: this.secretkey } }) } createS3Bucket(){ let s3Client = this.getS3Client(); s3Client.createBucket({ Bucket: 'sms-bucket-from-node',//Your bucket name }, (error, success) => { if(error) console.log(error); console.log(success); }) } uploadObject(){ let s3Client = this.getS3Client(); s3Client.putObject({ Bucket: 'sms-bucket-from-node', Key: 'mt-txt-file.txt', Body: Buffer('This is my file') }, (error, success) => { if(error) console.log(error); console.log(success); }) } }
В этом фрагменте кода мы загружаем текстовый файл с содержимым «Это мой файл» в нашу только что созданную корзину s3 sms-bucket-from-node. с помощью клиента s3, созданного с использованием ключей IAM и региона.
Удаление объекта в корзине S3
Добавьте следующий метод для удаления объекта в сегменте S3.
module.exports = class AWSS3Service{ constructor(region, accesskey, secretkey){ this.region = region; this.accesskey = accesskey; this.secretkey = secretkey; } getS3Client(){ return new AWS.S3({ region: this.region, apiVersion: 'latest', credentials: { accessKeyId: this.accesskey, secretAccessKey: this.secretkey } }) } createS3Bucket(){ let s3Client = this.getS3Client(); s3Client.createBucket({ Bucket: 'sms-bucket-from-node',//Your bucket name }, (error, success) => { if(error) console.log(error); console.log(success); }) } uploadObject(){ let s3Client = this.getS3Client(); s3Client.putObject({ Bucket: 'sms-bucket-from-node', Key: 'mt-txt-file.txt', Body: Buffer('This is my file') }, (error, success) => { if(error) console.log(error); console.log(success); }) } deleteObject(){ let s3Client = this.getS3Client(); s3Client.deleteObject({ Bucket: 'sms-bucket-from-node', Key: 'mt-txt-file.txt', }, (error, success) => { if(error) console.log(error); console.log(success); }) } }
В этом фрагменте кода мы удаляем загруженный mt-txt-file.txt из корзины s3 sms-bucket-from-node с помощью клиента s3 создается с использованием IAM-ключей и региона.
Удаление корзины S3
Добавьте следующий метод для удаления сегмента S3.
module.exports = class AWSS3Service{ constructor(region, accesskey, secretkey){ this.region = region; this.accesskey = accesskey; this.secretkey = secretkey; } getS3Client(){ return new AWS.S3({ region: this.region, apiVersion: 'latest', credentials: { accessKeyId: this.accesskey, secretAccessKey: this.secretkey } }) } createS3Bucket(){ let s3Client = this.getS3Client(); s3Client.createBucket({ Bucket: 'sms-bucket-from-node',//Your bucket name }, (error, success) => { if(error) console.log(error); console.log(success); }) } uploadObject(){ let s3Client = this.getS3Client(); s3Client.putObject({ Bucket: 'sms-bucket-from-node', Key: 'mt-txt-file.txt', Body: Buffer('This is my file') }, (error, success) => { if(error) console.log(error); console.log(success); }) } deleteObject(){ let s3Client = this.getS3Client(); s3Client.deleteObject({ Bucket: 'sms-bucket-from-node', Key: 'mt-txt-file.txt', }, (error, success) => { if(error) console.log(error); console.log(success); }) } }
В этом фрагменте кода мы удаляем корзину s3 sms-bucket-from-node с клиентом s3, созданным с помощью ключей IAM и >регион.
Создание файла Index.Js для выполнения операций S3
В корневом каталоге создайте файл index.js.
- Требуется класс s3Service
const s3Service = require(‘./utils/aws-s3’); Create an instance of your s3 class with your region, access key, and secret access key provided for IAM user let s3Client = new s3Service(‘your-region’, ‘your-access-key’, ‘your-secret-key’);
Для создания корзины
//For Creating a New Bucket s3Client.createS3Bucket();
После запуска выходных данных index.js
Перейдите в консоль AWS и выполните поиск S3, и ваша корзина будет создана.
Для загрузки объекта
//Upload Object s3Client.uploadObject();
После запуска выходных данных index.js
Перейдите в корзину S3, и ваш файл будет загружен.
Для удаления корзины
//Delete Bucket s3Client.deleteBucket();
После запуска выходных данных index.js
Перейдите в корзину S3, и ваш файл будет удален.
Для удаления объекта
//Delete Object s3Client.deleteObject();
После запуска выходных данных index.js
Перейдите на свой S3, и ваше ведро будет удалено.
Вот ссылка на репозиторий этого решения.
Если вы нашли это информативным, пожалуйста, следуйте за мной для будущих сообщений, связанных с этим. Не стесняйтесь, дайте мне знать о любых улучшениях.
Спасибо