AWS S3 对象存储 API 鉴权:签名版本的切换 v2 v4

本文通过示例展示了如何在AWS S3中切换对象存储API的签名版本,强调了即使被弃用的API仍可能在生产环境中使用。作者指出,应用程序应具备兼容旧接口的能力,以应对不同环境的需求,避免紧急情况下的系统不兼容问题。文中提及V4签名是对V2的增强,而非直接替代。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、AWS S3 对象存储API 切换签名版本示例

示例代码摘抄自 DELL ECS EMC aws-java-workshop

    public static AmazonS3 getS3ClientWithV4Signatures() {
        System.out.println("Running with V4 Signatures:\n");
        return getBasicS3ClientBuilder().build();
    }

    public static AmazonS3 getS3ClientWithV2Signatures() {

        AmazonS3ClientBuilder builder = getBasicS3ClientBuilder();

        // switch to v2 auth
        builder.setClientConfiguration(new ClientConfiguration().withSignerOverride("S3SignerType"));
        System.out.println("Running with V2 Signatures:\n");

        return builder.build();

    }

二、经验总结

文档上提到的已经被弃用的API,一定还有人在用

否则不会有人写文档让大家迁移到新接口。

故,一定要让调用API的应用可配置,兼容接口,以应对可能的变化。

绝不能认为“文档说旧接口废弃了,那我就只支持新接口”,这样遇到生产环境是旧接口,就要手忙脚乱,甚至重新发版了。
比如,业务方测试环境用了V41,但生产还是V22,理由是生产不好迁移。

三、后记

其实对于 AWS S3 来讲,v4 签名是 v2签名的增强型扩展3,而非是 v2废弃后的替代。我一开始以为是后者,导致应用不兼容V2,其实是失误。


  1. AWS General Referenc: Signature Version 4 signing process ↩︎

  2. AWS General Referenc: Signature Version 2 signing process ↩︎

  3. AWS General Referenc: Changes in Signature Version 4 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值