Пытаясь загрузить tiff в Mapbox, я получаю «отказано в доступе при вызове операции CreateMultipartUpload»

#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, но я получаю точно такую же ошибку.