есть ли способ синхронизировать c только файлы, которые присутствуют в корзине aws s3, а не удаленные? - PullRequest
0 голосов
/ 13 апреля 2020

Я работаю над проектом, и мне нужно выполнить следующие шаги:

  1. , синхронизировать все файлы, присутствующие в каталоге, с корзиной AWS S3.
  2. чтение файлов.

У меня есть скрипт оболочки, который содержит следующие строки:

s3 sync s3://<bucket_name>/performance/input scripts/input --region <region_name>

input_files=`ls -ltr scripts/input/ | awk -F ' ' '{print $9}'

echo ${input_files}

Я создал задания Jenkins в разделе Build. Я запускаю сценарий оболочки выше с помощью команды docker run.

Теперь проблема заключается в том, что когда я пытаюсь синхронизировать c из корзины, файлы, которые присутствуют в корзине, приходят вместе с удаленными файлы, которые я вручную удалил из корзины.

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

Ниже выводится команда echo ${input_files}:

+ input_files=

    <file_name>_2115.csv
    <file_name>_0001.csv
    <file_name>_0002.csv
    <file_name>_0003.csv
    <file_name>_0004.csv
    <file_name>_5444.csv
    <file_name>_1348.csv
    <file_name>_3914.csv
    <file_name>_5289.csv

Этот список содержит файлы, которые я удалил вручную. Эти файлы заканчиваются на _0001, 0002, 0003 и 0004. Однако я все еще вижу, что эти файлы идут.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

проблема была с историей Дженкинса. AWS syn c работал нормально. я только что добавил одну команду удаления из этого каталога, прежде чем syn c.

rm -rf scripts/input/*
0 голосов
/ 14 апреля 2020

Если я что-то упустил, я не могу увидеть, где вы синхронизируете свои файлы s3 тоже? Команда работает так:

aws s3 sync <source> <destination>

Если вы синхронизируете файлы с вашим активным каталогом, попробуйте добавить '.' в качестве пункта назначения также ваш источник s3 имел дополнительный '/', должен быть s3: //, если ваш контейнер не начинается с /.

aws s3 sync s3://{bucket}/{key} . --region
...