Синхронизация AWS S3 из корзины в корзину с помощью Nodejs

#node.js #amazon-s3 #aws-sdk #amazon-s3-bucket

Вопрос:

Мне нужно создать скрипт Nodejs для выполнения синхронизации S3 из корзины в корзину. Я не хочу запускать это, когда файл только что загружен в главный S3, поэтому я думаю, что лямбда-это не вариант. Мне нужно выполнять задачу ежедневно один раз в определенное время.

Как я могу добиться синхронизации корзины S3 с помощью NodeJS с помощью aws-sdk?

Cron можно использовать для планирования. Я нашел только код aws-sdk для копирования с S3 на другой S3. Есть ли у нас код для синхронизации двух сегментов S3?

Комментарии:

1. Похоже, вы хотите выполнить задание cron. Существует пакет для node, чтобы реализовать это (node-cron)

2. обратитесь к cron

3. Cron можно использовать для планирования. Я нашел только код aws-sdk для копирования с S3 на другой S3. Есть ли у нас код для синхронизации двух сегментов S3?

Ответ №1:

Вам понадобится задание cron, и nodejs предоставляет библиотеку с именем node-cron

 let cron = require('node-cron');

cron.schedule('* * * * *', () => {
  // TODO
  ...
});
 

Для ежедневного cron вы можете использовать что-то вроде

 0 0 * * *
 

Первый 0 указывает минуты, а второй-часы, поэтому этот cron будет запускаться каждый день в полночь.

Ответ №2:

Синхронизация корзины AWS S3 с использованием Nodejs и aws-sdk может быть выполнена методом пакета s3sync. Если вы используете его с node-cron , вы сможете реализовать планирование синхронизации корзины AWS S3 с помощью Nodejs.


Я не знаю, поможет ли это, если доступны Cron и aws-cli, цель может быть достигнута без Nodejs. Вы просто добавляете приведенный ниже код в crontab .

0 0 * * * aws s3 sync s3://bucket-name-1 s3://bucket-name-2