Я выполнил поиск по старым вопросам и нашел пару, которая затронула эту тему, но они не дали решения по моей проблеме.Попытка загрузить файл в корзину 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}