AWS SDK для JavaScript
AWS SDK для JavaScript
Подготовка к работе
- Создайте сервисный аккаунт.
- Назначьте сервисному аккаунту роли, необходимые для вашего проекта. Подробнее о ролях см. в документации Identity and Access Management.
- Создайте статический ключ доступа.
Примечание
Сервисный аккаунт может просматривать список бакетов только в том каталоге, в котором он был создан.
Сервисный аккаунт может выполнять действия с объектами в бакетах, которые созданы в каталогах, отличных от каталога сервисного аккаунта. Для этого назначьте сервисному аккаунту роли на нужный каталог или бакет в нем.
Установка
Чтобы установить AWS SDK для JavaScript:
-
Установите
Node.js. -
Склонируйте репозиторий AWS SDK Code Examples
. Для этого в терминале выполните команду:git clone https://github.com/awsdocs/aws-doc-sdk-examples
Настройка
-
Перейдите в директорию
~/.aws/
(для macOS и Linux) илиC:\Users\<имя_пользователя>\.aws\
(для Windows). -
Создайте файл
credentials
с аутентификационными данными для Object Storage и скопируйте в него следующую информацию:[default] aws_access_key_id = <идентификатор_статического_ключа> aws_secret_access_key = <секретный_ключ>
-
Создайте файл
config
с параметрами региона по умолчанию и скопируйте в него следующую информацию:[default] region=ru-central1
Примечание
Некоторые приложения, предназначенные для работы с Amazon S3, не позволяют указывать регион, поэтому Object Storage принимает также значение
us-east-1
.
Для доступа к Object Storage используйте эндпоинт https://storage.yandexcloud.net
.
Примеры кода
Пример кода для создания бакета находится в директории javascriptv3/example_code/nodegetstarted/src
репозитория.
Чтобы подключиться к Object Storage и создать бакет:
-
Установите зависимости, описанные в файле
javascriptv3/example_code/nodegetstarted/package.json
:npm install node -g cd aws-doc-sdk-examples/javascriptv3/example_code/nodegetstarted npm install
-
В директории
javascriptv3/example_code/nodegetstarted/src/libs/
откройте файлs3Client.js
с описанием клиента для Object Storage. -
Замените содержимое файла на следующий код:
import { S3Client } from "@aws-sdk/client-s3"; // Установка региона Object Storage const REGION = "ru-central1"; // Установка эндпоинта Object Storage const ENDPOINT = "https://storage.yandexcloud.net"; // Создание клиента для Object Storage const s3Client = new S3Client({ region: REGION, endpoint: ENDPOINT }); export { s3Client };
-
В директории
javascriptv3/example_code/nodegetstarted/src/
откройте файлsample.js
с кодом для создания бакета и объекта в нем.Содержимое sample.js
// Импорт клиентов и команд AWS SDK для работы с Node.js import { PutObjectCommand, CreateBucketCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js"; // Установка параметров const params = { Bucket: "<имя_бакета>", // Имя бакета, например 'sample-bucket-101'. Key: "<имя_объекта>", // Имя объекта, например 'sample_upload.txt'. Body: "<содержимое_объекта>", // Содержимое объекта, например 'Hello world!". }; const run = async () => { // Создание бакета try { const data = await s3Client.send( new CreateBucketCommand({ Bucket: params.Bucket }) ); console.log(data); console.log("Successfully created a bucket called ", data.Location); return data; // Для модульного тестирования. } catch (err) { console.log("Error", err); } // Создание объекта и загрузка его в бакет try { const results = await s3Client.send(new PutObjectCommand(params)); console.log( "Successfully created " + params.Key + " and uploaded it to " + params.Bucket + "/" + params.Key ); return results; // Для модульного тестирования. } catch (err) { console.log("Error", err); } }; run();
-
В блоке
const params
задайте имя бакета, имя и содержимое объекта в бакете. -
Запустите приложение:
node sample.js
Подробности о работе с AWS SDK для JavaScript см. в документации AWS