首页 > 解决方案 > 使用 CURL 调用 AWS CloudFront API

问题描述

是否可以使用 CURL 调用 AWS CloundFront API?我想在不安装太多依赖项的情况下触发失效。但我无法向 API 发出简单的 GET 请求:

curl -v -X GET \
-H "Date: $(date -R)" \
-H "Authorization: AWS ${CLOUDFRONT_ACCESS_KEY}:$(echo -en ${CLOUDFRONT_ACCESS_KEY} | openssl sha1 -hmac ${CLOUDFRONT_SECRET_ACCESS_KEY} -binary | base64)" \
https://cloudfront.amazonaws.com/2020-05-31/distribution/EMC3WW4JXXXXX/invalidation/IXMUICGG7L77A

结果

<?xml version="1.0" encoding="UTF-8"?>
<ErrorResponse xmlns="http://cloudfront.amazonaws.com/doc/2020-05-31/">
  <Error>
    <Type>Sender</Type>
    <Code>IncompleteSignature</Code>
    <Message>Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization=AWS AKIAJG77PBXLMN5YQI7A:K62YyDlWiVf/yr44YSs7BbsQYDQ=</Message>
  </Error>
  <RequestId>f9e5b7de-bce6-4bfd-951e-2986ae5bc1a3</RequestId>
</ErrorResponse>

标签: amazon-web-servicescurlamazon-cloudfront

解决方案


您可以查看使用签名版本 4 签署 AWS 请求以签署请求。

另外,失效 API 调用需要更多参数来根据文档进行调用

我通常把这个方便的 s3-rest-api-with-curl


推荐阅读