1、S3是(Simple Storage Service),亚马逊提供的一种云存储服务协议(名称的缩写让我想起了k8s,这种不拘一格的命名方式)。
S3协议在接口对接时都有安全校验。常用的有V2签名和V4签名。V2签名很简单。V4签名复杂一点,因为它为了验证数据的完整性,要验证时间参数、请求头参数、内容摘要等。也可添加自定义参数。
官方文档地址:
官方的s3v4签名定义链接
已验证官方文档的描述很准确。
2、shell脚本实现s3v4签名
在centos系统上执行shell脚本 s3v4.sh,过程如下:
向云存储上传一个2M左右的文件。脚本中通过curl向云存储服务端发起PUT方法的请求。将文件上传到云存。
脚本中把v4校验的参数放在了请求头里。根据官方文档,也可以按格式要求放在请求行的参数里。
如下是脚本执行后输出的请求和响应信息。可以看出,云存服务先响应了100,然后又响应了200OK,文件上传成功。
3、脚本下载地址: