Получить значение MD5 файла S3 с помощью curl - PullRequest
0 голосов
/ 28 февраля 2019

Чтобы получить конкретный файл из S3, я использую скрипт, показанный ниже:

# Get the configuration file
outputfilecfg=XXXX
amzFilecfg=XXXX
bucket=XXXX
resource="/${bucket}/${amzFilecfg}"
contentType="text/plain"
dateValue=`date -R`
stringToSigncfg="GET\n\n${contentType}\n${dateValue}\n${resource}"
s3Key=$S3_KEY
s3Secret=$S3_SECRET
signature=`echo -en ${stringToSigncfg} | openssl sha1 -hmac ${s3Secret} -binary | base64`

curl  -H "Host: ${bucket}.s3.amazonaws.com" \
      -H "Date: ${dateValue}" \
      -H "Content-Type: ${contentType}" \
      -H "Authorization: AWS ${s3Key}:${signature}" \
      https://${bucket}.s3.amazonaws.com/${amzFilecfg} -o $outputfilecfg

Теперь я хочу иметь возможность получить значение метаданных объекта, как указано в документации S3.(https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html). Я хочу иметь возможность делать это исключительно через curl, а не через aws-cli. Возможно ли это?

1 Ответ

0 голосов
/ 03 марта 2019

Вы можете получить только метаданные объекта, сделав запрос HEAD вместо запроса GET.Чтобы сделать запрос HEAD в cURL, используйте опцию -I.

curl  -I -H "Host: ${bucket}.s3.amazonaws.com" \
      -H "Date: ${dateValue}" \
      -H "Content-Type: ${contentType}" \
      -H "Authorization: AWS ${s3Key}:${signature}" \
      https://${bucket}.s3.amazonaws.com/${amzFilecfg} -o $outputfilecfg

Подробнее об этом см. Документацию

...