Amazon web services 如何更改s3';从v4签名到v2?

Amazon web services 如何更改s3';从v4签名到v2?,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我有一个成功运行的算法,为AmazonS3Web服务计算V4签名,但我也需要实现V2签名器 这两个符号之间有没有一个完全不同的列表 我发现了这一点,但这并不是所需要的全部:最好不要考虑签名V2和签名V4之间的“变化” 以下是两种算法的不同之处的完整列表: 一切 也就是说,差异远远超过了相似之处 几乎所有参数名称都不同,其值的计算方式也不同,且值的格式也不同。V4是对签名算法的完全重新设计。在V4中几乎找不到V2中有意义的内容 所以,根据经验,我的建议是,不要试图调整或修改V4代码,使其也可以

我有一个成功运行的算法,为AmazonS3Web服务计算V4签名,但我也需要实现V2签名器

这两个符号之间有没有一个完全不同的列表


我发现了这一点,但这并不是所需要的全部:

最好不要考虑签名V2和签名V4之间的“变化”

以下是两种算法的不同之处的完整列表:

  • 一切
也就是说,差异远远超过了相似之处

几乎所有参数名称都不同,其值的计算方式也不同,且值的格式也不同。V4是对签名算法的完全重新设计。在V4中几乎找不到V2中有意义的内容

所以,根据经验,我的建议是,不要试图调整或修改V4代码,使其也可以执行V2。把它们分开。从头开始实现V2将容易得多。在使用V2时,甚至不要考虑V4。只需实现V2

S3在V2上有自己的部分,位于

IAM文件还讨论了V2,见

S3实现有一些奇怪的属性,因此首选S3文档


请注意,在V2中的
签名
字段中,绝对要求在base64编码之后对
+
进行url转义(编码百分比),但是真正的S3会悄悄地忽略这样一个事实,即您没有对
=
进行编码,可能也没有对
/
进行编码,因此忽略url转义要求的实现将生成有时有效有时无效的签名。如果您正在使用的第三方服务没有像S3那样提供有用的
SignatureDesNotMatch
请求,那么您需要针对旧S3区域中的bucket测试您的实现,因为它确实提供了有用的诊断,可以帮助您对实现进行故障排除,如果您知道如何阅读它们。

为什么需要签名V2?@Michael sqlbot,我需要支持专有的备份应用程序,它只支持V2