#linux #shell #curl #mapbox #aws-cli
#linux #оболочка #завиток #картографический ящик #aws-cli
Вопрос:
Я пытаюсь создать сценарий оболочки, который будет загружать наши tiff в mapbox, используя их API. Я извлекаю временные учетные данные из первоначального сообщения curl, но когда дело доходит до копирования данных с помощью команды cp aws, я получаю сообщение об ошибке «Доступ запрещен» при вызове операции CreateMultipartUpload.
Я предполагаю, что эта ошибка связана с неправильным хранением учетных данных. Мой код выглядит следующим образом:
#save curl response as var
ans=`curl -X POST "https://api.mapbox.com/uploads/v1/xxx/credentials?access_token=$token"`
#extract necessary info from var
key=`echo $ans | grep -zoP '"key":s*"K[^s,]*(?=s*",)'`
bucket=`echo $ans | grep -zoP '"bucket":s*"K[^s,]*(?=s*",)'`
accessKeyId=`echo $ans | grep -zoP '"accessKeyId":s*"K[^s,]*(?=s*",)'`
secretAccessKey=`echo $ans | grep -zoP '"secretAccessKey":s*"K[^s,]*(?=s*",)'`
sessionToken=`echo $ans | grep -zoP '"sessionToken":s*"K[^s,]*(?=s*",)'`
#export env variables for auth
export AWS_ACCESS_KEY_ID=$accessKeyId
export AWS_SECRET_ACCESS_KEY=$secretAccessKey
export AWS_SESSION_TOKEN=$sessionToken
#copy data across
aws s3 cp $inputdir s3://$bucket/$key/ --recursive --region us-east-1
Любая помощь была бы очень признательна.
Ответ №1:
--recursive
не поддерживается. Вам нужно загружать файлы один за другим.
Комментарии:
1. Я только что попробовал удалить —recursive и обернуть его в цикл for, но я получаю точно такую же ошибку.