Что такое 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, и ваше ведро будет удалено.

Вот ссылка на репозиторий этого решения.



Если вы нашли это информативным, пожалуйста, следуйте за мной для будущих сообщений, связанных с этим. Не стесняйтесь, дайте мне знать о любых улучшениях.

Спасибо