amazon-web-services - 使用 curl 获取 S3 文件的 MD5 值
问题描述
为了从 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 来做到这一点。这可能吗?
解决方案
您可以通过发出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
有关其中任何一个的更多详细信息,请参阅
HEAD Object
API的 S3 文档- 卷曲手册
推荐阅读
- javascript - 用JS改变元素的字体大小
- php - 使用php获取alexa排名
- ibm-cloud - cf UI 控制台的 API 端点 https://console.w3ibm.bluemix.net/
- jenkins - 从 Jenkins build 为 pull request 启用 Github 状态检查:抱歉,我们在上周找不到此存储库的任何状态检查
- vba - 子/函数调用中的括号和逗号分隔的参数?
- r - 日期比较 R
- c++ - Catch2 替代部分行为
- sql - 比较两个字符串的共同值
- javascript - document.getElementsByTagName 正在工作,但相同的功能不适用于 document.getElementById
- python - Django - 目录路径的哪个模型字段?