Header中包含签名 GET Object 从名为examplebucket的Bucket中get文件。 请求 StringToSign GET /photos/puppy.jpg HTTP/1.1 Host: examplebucket.ooscn.ctyunapi.cn Date: Tue, 11 Jun 2024 01:32:55 GMT ContentType: application/octetstream Authorization: AWS 3a7451ae6b635b4f5ded:icJnqU3Zfm1sEOBCBwJPKymwWds GETn n application/octetstreamn Tue, 11 Jun 2024 01:32:55 GMTn /examplebucket/photos/puppy.jpg 注意 CanonicalizedResource中包含Bucket名称,但是HTTP请求URI中没有,因为Bucket名称是在Host请求头中指定的。请求中没有ContentMD5请求头,所以StringToSign中是空行。 PUT Object 向名为examplebucket的Bucket中上传一个文件。 请求 StringToSign PUT /photos/puppy.jpg HTTP/1.1 Host: examplebucket.ooscn.ctyunapi.cn Date: Tue, 11 Jun 2024 01:43:59 GMT ContentType: image/jpeg ContentMD5: ICy5YqxZB1uWSwcVLSNLcA ContentLength: 94328 Authorization: AWS 3a7451ae6b635b4f5ded:MHUV0HaL8UiNe/VPNbWg06PppEI PUTn ICy5YqxZB1uWSwcVLSNLcAn image/jpegn Tue, 11 Jun 2024 01:43:59 GMTn /examplebucket/photos/puppy.jpg 注意 ContentType、ContentMD5请求头包含在请求中,也包含在StringToSign中。 List Objects list名为examplebucket的Bucket的文件。 请求 StringToSign GET /?prefixphotos&maxkeys50&markerpuppy HTTP/1.1 Host: examplebucket.ooscn.ctyunapi.cn Date: Tue, 11 Jun 2024 01:59:59 GMT ContentType: application/octetstream UserAgent: Mozilla/5.0 Authorization: AWS 3a7451ae6b635b4f5ded:kitekL1v232x7FYLUUi7y2kPC9g GETn n application/octetstreamn Tue, 11 Jun 2024 01:59:59 GMTn /examplebucket/ 注意 CanonicalizedResource的结尾要有斜杠/,查询字符串为空。