Я пытаюсь написать сценарий S3 Bash, чтобы иметь возможность передавать имя корзины и объекты в них, чтобы иметь возможность загружать локально - PullRequest
0 голосов
/ 29 апреля 2020

Используя этот формат, мне нужно написать скрипт bash, в котором я могу передать Bucketname и FilesNames в виде текстовых файлов, и он будет запускаться как BucketName1 / File1, File2 .. FileN BucketName1 / File1, File2 .... FileN

Вот что я написал. Но я не получаю требуемый вывод.

#!/bin/bash
BucketName=$1
FileName=$2
while IFS= read -r FileName
do
aws s3 cp s3://${BucketName}/${FileName} .
done

1 Ответ

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

Если второй аргумент указывает на файл со списком файлов для загрузки, то должно работать следующее:

#!/bin/bash
BucketName=$1
FileName=$2
while IFS= read -r file;
#while IFS= read -r FileName
do
aws s3 cp s3://$BucketName/$file .
done < $FileName

Где вторым аргументом является файл типа:

file1.csv
file2.csv
file3.csv

Вывод:

$ bash s3bash.sh mybucket s3files.txt
download: s3://mybucket/file1.csv to ./file1.csv         
download: s3://mybucket/file2.csv to ./file2.csv         
download: s3://mybucket/file3.csv to ./file3.csv         

Если вы передаете список файлов в виде строки с разделителями, вместо файла - проверьте этот ответ: { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...