Загрузите файл в корзину Amazon S3 с помощью сценария оболочки и команды curl - PullRequest
0 голосов
/ 21 февраля 2019

Я выполнил поиск по старым вопросам и нашел пару, которая затронула эту тему, но они не дали решения по моей проблеме.Попытка загрузить файл в корзину Amazon S3 с помощью сценария оболочки, настроенного в Secure Shell (Linux).Сценарий не получает ошибок и, похоже, работает, однако файл не отображается в корзине Amazon S3.Это сценарий, который я использую (скрытые являются фактическими значениями, но удалены в целях безопасности):

"OUT_FILE="hidden"
S3_BUCKET="hidden"
S3KEY="hidden"
S3SECRET="hidden"

FUNC_S3_UPLOAD()

#upload data to S3

{

source_file="$OUT_FILE"
resource="/${S3_BUCKET}/${source_file}"
contentType="application/csv"
dateValue=$(date -R)
stringToSign="PUT\n\n${contentType}\n${dateValue}\n${resource}"
signature=$(echo -en "${stringToSign}" | openssl sha1 -hmac "${S3SECRET}"         -binary | base64)

curl -X PUT -T "${source_file}" \
  -H "Host: $https://s3.amazonaws.com/{S3_BUCKET}" \
  -H "Date: ${dateValue}" \
  -H "Content-Type: ${contentType}" \
  -H "Authorization: AWS ${S3KEY}:${signature}" \

  https://s3.amazonaws.com/"$S3_BUCKET"/"$OUT_FILE"

}

Вышеприведенное основано на информации, полученной (ниже) от стороннего поставщика, чью корзину Amazon S3 мыпытаются загрузить в.

Обязательный префикс загрузки (и полное имя пользователя IAM): importer-production-missouriwestern

Расположение загрузки:

HTTPS Example: https://s3.amazonaws.com/handshake-importer-uploads/importer-production-missouriwestern/yourobjectnamehere.csv


S3 Example: aws s3 cp /your/local/dir/test.csv s3://handshake-importer-uploads/importer-production-missouriwestern/test.csv 

Я пробовал следующееМакет сценария также с теми же результатами:

signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${s3Secret}  -binary | base64`
curl -m 6000 -S -v -X PUT -T "${file}" \
    -H "Host: ${bucket}.s3.amazonaws.com" \
    -H "Date: ${dateValue}" \
    -H "Content-Type: ${contentType}" \
    -H "Authorization: AWS ${s3Key}:${signature}" \
    https://${bucket}.s3.amazonaws.com/${file}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...