Основная цель этой статьи — понять основы загрузки данных в корзины AWS-S3. Перед началом не забудьте создать корзину s3 и пользователя IAM с необходимыми разрешениями для вашей корзины в консоли AWS. Вы можете найти руководства по этим шагам в конце этой статьи :)
Я получил образование в области компьютерных наук. Через некоторое время я начал интересоваться веб-технологиями. Я новичок в веб-разработке и хотел бы поделиться с вами небольшой частью моего последнего проекта NodeJS.
Я хочу начать с модуля awsService.js. Во-первых, мы собираемся импортировать библиотеку AWS для использования. Затем мы собираемся обновить нашу конфигурацию по мере необходимости. Этот проект был посвящен хранению некоторых данных в корзинах S3, поэтому мы воспользуемся функцией загрузки библиотеки AWS, затем экспортируем и используем ее в нашем основном файле javascript.
// 1- Import the AWS Library var AWS = require('aws-sdk'); // 2- Update region in AWS.config AWS.config.update({region: 'Your buckets region here'}); // 3- We will define a few constants with necessary information const bucket = 'Your buckets name here'; const IAM_USER_KEY = 'Your IAM user key here'; const IAM_USER_SECRET = 'Your IAM user secret here'; // 4- Then we are going to use AWS.S3 and those constants to define // an s3 service interface object. const s3 = new AWS.S3({ accessKeyId: IAM_USER_KEY, secretAccessKey: IAM_USER_SECRET, Bucket: bucket }); // 5- Now we can define our own upload function by using s3 // object's upload function. This function is async because s3 // object's upload function is async. const upload = async (data) => { // 6- Define an object to keep our data const uploadParams = {Bucket: bucket, Key: '', Body: ''}; // 7- Convert data into string and put it into that object uploadParams.Body = JSON.stringify(data); // 8- Define the key, you can assume it is the filename :) uploadParams.Key = 'filename.txt'; // 9- Now, let's call the s3 object's upload function and // convert it to a Promise. So we can wait for the process, // then/catch return whatever we want await s3.upload(uploadParams).promise() .then((data) => { console.log(`File uploaded successfully. ${data.Location}`); }) .catch((err) => { console.error("Upload failed", err); }); }; // 10- Let's export our upload function to use it in main javascript // file module.exports = { upload };
Теперь все, что нам нужно сделать, это импортировать нашу функцию загрузки в основной файл javascript и использовать ее!
// Import our awsService module const awsService = require('./awsService'); // Call an async function directly to keep it short :) (async() => { // Get and process your data, then pass it to our upload // function which is in the awsService module await awsService.upload(data); })();
Это очень простой способ загрузки данных в корзины AWS-S3. В библиотеке AWS есть много разных функций для разных целей и операций. Я оставлю несколько ссылок ниже, которые, я думаю, вы найдете очень полезную информацию :)
- AWS Javascript SDK и руководства: https://aws.amazon.com/sdk-for-javascript/
- Примеры Amazon S3 Node.js (Создание, использование, управление и т. д. корзин Amazon S3): https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/s3-node -examples.html
- Роли IAM: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html