невозможно скопировать файл с s3 на локальную машину с Ubuntu - PullRequest
0 голосов
/ 28 сентября 2019

Я установил клиент AWS и настроил его с помощью ключа доступа, секретного ключа и региона.Когда я запускаю команду aws s3 cp из командной строки, она работает и возвращает изображение.

ws s3 cp s3://BUCKET_NAME/FOLDERNAME/abc.jpg /var/images/

, но когда я использую ту же самую команду выше в сценарии оболочки, она не копирует изображение в обозначение.

Вот сценарий оболочки

#!/bin/bash
set -e
searchstring="/cases/"
foldername="/"
while read line
do
        data=$line
        name=${data#*$searchstring}
        replaced=$(echo $name | sed -e 's/\//_/g')
        folder=${name%$foldername*}
        path=/root/scripts/odometer/

        aws s3 cp s3://*****-production-/cases/$name $path --recursive  --region us-east-1
done < export.txt

Я пробовал также и другие варианты, удаляя рекурсив и область, оставляя одно удаление другим, но безуспешно.

Я также попытался использовать команду wget, указав полный путь к образу s3, но все еще не может его загрузить.

root@oltau-training:~/scripts# wget https://****production-***.s3.us-east-2.amazonaws.com/cases/132/1525770896114.jpg -P /root/scripts/odometer/
--2019-09-28 05:43:40--  https://****production-***.s3.us-east-2.amazonaws.com/cases/132/1525770896114.jpg
Resolving ****production-***.s3.us-east-2.amazonaws.com (****production-***.s3.us-east-2.amazonaws.com... 5*.219.*8.48
Connecting to ****production-***.s3.us-east-2.amazonaws.com (****production-***.s3.us-east-2.amazonaws.com)|5*.219.*8.48|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2019-09-28 05:43:40 ERROR 403: Forbidden.

Я намереваюсь скопировать изображения с s3 на локальный компьютер с помощью команды aws s3 или wgetкоманда.Примечание. У меня полный доступ к моей учетной записи s3

Ответы [ 2 ]

1 голос
/ 28 сентября 2019

Вы не можете wget изображение, если объект является частным, для общедоступного изображения вы можете попробовать что-то вроде wget --no-check-certificate --no-proxy 'http://your_bucket.s3.amazonaws.com/my-file.jpg'.

, если это aws s3 cp s3://BUCKET_NAME/FOLDERNAME/abc.jpg /var/images/ работает, это означает проблему с расширением переменных скрипта bash.

Так что лучше повторить команду, прежде чем пытаться получить объект из s3 и проверить, правильно ли заданы все переменные.

echo "aws s3 cp s3://*****-production-/cases/$name $path --recursive  --region us-east-1"

Еще одна вещь, которая может вызвать эту проблему, может быть двойная проверкарегион --region us-east-1.как и в первой команде, он выберет регион по умолчанию.

Также, если вы копируете один файл, удалите --recursive

0 голосов
/ 29 сентября 2019

Я столкнулся с подобной проблемой при копировании в или из корзины s3 из моего скрипта bash.Все, что я сделал, это проверил путь, где установлен мой aws cli, и добавил этот путь в свой скрипт.Вы можете проверить ваш путь aws cli с помощью команды bash , которая aws

Ваша команда в сценарии оболочки будет выглядеть так: / path / aws s3 cp ....

...