AWS SDK for Java v2 2.33.x 版本全览可拆分请求体重构、SigV4 性能优化与 14 个版本的服务 API 演进【免费下载链接】aws-sdk-java-v2The official AWS SDK for Java - Version 2项目地址: https://gitcode.com/GitHub_Trending/aw/aws-sdk-java-v2本篇基于仓库 changelogs/2.33.x-CHANGELOG.md 对 AWS SDK for Java v2 2.33.02.33.13 共 14 个版本的变更进行系统解读聚焦 SDK 核心引擎的请求体拆分 API 重构、SigV4 签名性能优化、依赖升级与关键缺陷修复并逐版本梳理覆盖数十个 AWS 服务的 API 演进。读完本文你将掌握 2.33.x 中AsyncRequestBody#splitCloseable、BufferedSplittableAsyncRequestBody等新 API 的用法与设计动机理解各修复背后的底层原理并了解如何将项目安全升级到该版本线。一、2.33.x 发布节奏与版本总览2.33.x 系列从 2025-08-29 的 2.33.0 开始到 2025-09-18 的 2.33.13 结束采用每周一至两次的高频迭代节奏。所有历史变更日志统一存放在仓库 changelogs 目录每个 minor 版本线一个文件如 2.34.x-CHANGELOG.md、2.35.x-CHANGELOG.md根目录 CHANGELOG.md 汇总全部版本。版本发布日期核心内容摘要2.33.02025-08-29可拆分请求体 API 重构splitCloseable、SigV4 RPC 签名性能优化2.33.12025-09-02Endpoint/Partition 元数据更新、User Notifications Org 支持2.33.22025-09-03Route 53 新西兰区域、Transcribe 自动语言识别、AmazonMQ CONFIG_MANAGED2.33.32025-09-04EC2 m8i 系列、OpenSearch Serverless FIPS/FedRAMP2.33.42025-09-05Netty 4.1.126、DynamoDB Enhanced 嵌套对象注解支持2.33.52025-09-08X-Forwarded-For 不再参与 SigV4 签名2.33.62025-09-09CloudWatch DescribeAlarmContributors API2.33.72025-09-10fromFile异常传播修复、AutoGeneratedTimestamp 变更回滚2.33.82025-09-11MediaLive HLS 参数透传、EMR Containers nodeLabel2.33.92025-09-12Jackson 升级至 2.19.02.33.102025-09-15S3 Control 加密过滤器、S3 multipart 校验2.33.112025-09-16SdkLengthAwareInputStreamcontent-length 保留修复2.33.122025-09-17Network Firewall SNI 验证、mac-m4 实例类型2.33.132025-09-18Budgets 健康状态异常、EC2 Allowed AMIs 新参数其中AWS SDK for Java v2自身在各版本持续Updated endpoint and partition metadata属于常规的区域与分区元数据同步影响面主要在端点解析下文不再逐一重复。二、SDK 核心引擎升级与重构重点2.33.x 最值得关注的是 SDK 自身的 API 演进与性能/缺陷修复均可在 core/sdk-core 源码中得到印证。2.33.0可拆分请求体 API 重构——splitCloseable与可重试子请求体2.33.0 对异步请求体的拆分能力进行了体系化重构引入三个相互配合的组件新增AsyncRequestBody#splitCloseableAPI返回SdkPublisherCloseableAsyncRequestBody替代原有split新增CloseableAsyncRequestBody接口同时继承AsyncRequestBody与SdkAutoClosable子请求体在使用完毕后可被关闭以释放资源新增BufferedSplittableAsyncRequestBody一个AsyncRequestBody装饰器可将任意请求体拆分为多个可独立重试的子请求体废弃AsyncRequestBody#split签名不变但返回值由SdkPublisherAsyncRequestBody变为SdkPublisherCloseableAsyncRequestBody建议迁移到新 API。从源码看废弃方法 AsyncRequestBody.java#L574-L585 中标注了Deprecated与deprecated use {link #splitCloseable(AsyncRequestBodySplitConfiguration)} instead.其实现通过SplittingPublisher构建拆分器并将retryableSubAsyncRequestBodyEnabled置为false而新的splitCloseableAsyncRequestBody.java#L606-L640则允许各实现类覆盖以产出可重试的子请求体。拆分行为约定默认 chunk size 为 2MB、默认 buffer sizemaxMemoryUsageInBytes为 8MB当请求体contentLength()已知时每个子请求体初始化后即发送给下游订阅者而 content length 未知时则须等该 chunk 完整缓冲后再发送此时配置的maxMemoryUsageInBytes必须大于等于chunkSizeInBytes。BufferedSplittableAsyncRequestBody的设计要点见 BufferedSplittableAsyncRequestBody.java静态工厂create(AsyncRequestBody delegate)默认不启用发送前全量缓冲在 content-length 已知路径下每个部分初始化后立即发送让 HTTP 连接与数据到达并行构造器builder().asyncRequestBody(...).bufferBeforeSend(true)开启发送前全量缓冲后每个部分完整缓冲完毕才发送下游从而保证重试缓冲在 HTTP 层订阅前必然就绪对慢速流式数据源如 SFTP可让按部分重试确定性成功内存占用说明开启bufferBeforeSend不会增加峰值内存缓冲数据始终受AsyncRequestBodySplitConfiguration中bufferSizeInBytes约束差异仅在数据在下游发送前的滞留时长重试前提只有首次订阅时全部数据被成功缓冲重试才能成立若首个订阅者因提前取消或异常未能消费完数据后续重试会因数据不完整而失败使用约束订阅者必须关闭每个CloseableAsyncRequestBody以释放资源splitCloseable的 Javadoc 明确标注 The subscriber MUST close each CloseableAsyncRequestBody to ensure resource is released。代码示例摘自该类 Javadoc 的{snippet}// 简单用法默认行为立即发送 AsyncRequestBody originalBody AsyncRequestBody.fromString(Hello World); BufferedSplittableAsyncRequestBody retryableBody BufferedSplittableAsyncRequestBody.create(originalBody); // 针对慢速流式源开启发送前全量缓冲 BufferedSplittableAsyncRequestBody fullBufferedBody BufferedSplittableAsyncRequestBody.builder() .asyncRequestBody(originalBody) .bufferBeforeSend(true) .build();该重构的测试覆盖集中在 SplittingPublisherTest.java、ByteBuffersAsyncRequestBodySplitTest.java 与 AsyncRequestBodyTest.java可用于理解拆分、重试与资源关闭的预期行为。2.33.0SigV4 签名性能优化RPC 协议2.33.0 同时改善了 SigV4 签名性能尤其针对 RPC 协议如 Query/JSON-RPC 风格的服务。签名是每个 AWS 请求必经的热路径此优化直接影响所有使用 SigV4 认证的同步与异步客户端的高吞吐场景属于无行为变化的内部性能改进升级后无需修改代码即可受益。2.33.11SdkLengthAwareInputStream保留初始 content-length2.33.11 修复了一个流处理缺陷调用SdkLengthAwareInputStream.mark后将保留初始的 content-length。该流是 SDK 核心 IO 层的长度感知包装流用于在流式传输中跟踪剩余字节此前 mark/reset 过程中可能导致长度信息漂移进而影响以 content-length 为准的请求头与重试逻辑。修复确保无论流被标记/重置其对外暴露的长度语义保持一致。2.33.7fromFile异常传播修复与 DynamoDB 注解变更回滚2.33.7 包含两项 SDK 自身修复AsyncRequestBody#fromFile文件修改异常传播确保读取文件过程中若文件发生修改等异常能被正确向上传播给调用方避免静默吞掉异常导致数据不一致或卡死回滚AutoGeneratedTimestampRecordExtension变更该变更是 2.33.4 引入的可能破坏用户手工配置的表结构对应 issue #6410因此在 2.33.7 中被回滚。这也提醒升级用户若你在 2.33.42.33.6 之间启用了该扩展的新行为升级到 2.33.7 后行为会恢复到 2.33.3 及之前的语义。2.33.5X-Forwarded-For 不再参与 SigV4 签名2.33.5 修复了代理场景下 X-Forwarded-For 头被错误纳入 SigV4 签名计算的问题由社区贡献者 brandondahler 提交。代理链添加的 X-Forwarded-For 值在每次转发时可能变化参与签名会导致签名失效或需要持续重新签名修复后该头不再参与签名配合代理部署的用户应关注此行为变化。2.33.9 / 2.33.4依赖升级2.33.9Jackson 与 Jackson jr 升级至 2.19.0。Jackson 是 SDK 内部 JSON 序列化/反序列化的基础依赖此升级通常带来性能与安全修复但需注意若你的应用同时直接依赖 Jackson应保持版本协调以避免冲突2.33.4Netty 升级至 4.1.126由 mrdziuban 贡献。Netty 是默认异步 HTTP 客户端 netty-nio-client 的底层实现升级带来 bug 修复与稳定性提升对使用异步客户端的用户影响直接。2.33.4archetypecredentialProvider参数默认值2.33.4 为官方 Maven archetype快速开始模板见 archetypes 目录的credentialProvider参数设置了默认值避免使用mvn archetype:generate生成项目时因参数缺失导致构建配置不完整。使用 archetype-app-quickstart 或 archetype-lambda 生成新项目时即使不显式指定该参数也会得到合法的默认配置。三、DynamoDB Enhanced Client嵌套对象的注解支持2.33.4 为 dynamodb-enhancedDynamoDB 增强型客户端新增了对嵌套对象内属性的注解支持DynamoDbAutoGeneratedTimestampAttribute嵌套对象内的属性也可自动生成/更新时间戳DynamoDbUpdateBehavior嵌套属性的更新行为注解其生效前提是使用IgnoreNullsMode.SCALAR_ONLY该模式仅忽略标量 null 字段从而允许嵌套对象内的更新行为注解被识别。注解定义位于 services-custom/dynamodb-enhanced 的 mapper 注解包如 DynamoDbUpdateBehavior.java。使用增强型客户端且数据模型包含嵌套对象document 类型字段的开发者可将时间戳自动管理下沉到嵌套层级。四、S3 与 S3 Control 的更新2.33.x 对 S3 生态有两处直接变更2.33.10S3 multipart 下载附加校验Amazon S3 Bugfix。Java multipart S3 客户端在分段下载操作中新增了额外校验逻辑涉及分段范围、响应完整性等降低大对象分段下载时数据错位的风险2.33.10S3 Control 新增三个加密过滤器AWS S3 Control Feature。用于存储桶/目录桶等资源的清单与策略过滤EncryptionType支持 SSE-S3、SSE-KMS、DSSE-KMS、SSE-C、NOT-SSEKmsKeyArn针对 SSE-KMS 与 DSSE-KMS 指定 KMS 密钥 ARNBucketKeyEnabled针对 SSE-KMS 的存储桶密钥Bucket Key启用状态过滤。另外 2.33.5 提到 Amazon S3 的 Expires 参数向后兼容工作属服务端 API 语义调整SDK 侧同步更新模型。五、云服务 API 演进速览2.33.1 ~ 2.33.13除 SDK 内核外2.33.x 还同步了海量服务 API。以下按版本归纳均已对应到具体服务可直接在仓库 services 目录找到对应客户端模块2.33.132025-09-18AWS Budgets新增BillingViewHealthStatus异常——当预算基于的 Billing View 不处于 HEALTHY 状态时创建/更新预算会抛出该异常Amazon Bedrock提高策略构建文档policy build document的最大大小DeleteAutomatedReasoningPolicyBuildWorkflow增加ResourceInUseException修正UpdateAutomatedReasoningPolicyTestCaseRequestAmazon Chime SDK MessagingGetMessagingSessionEndpointAPI 现返回支持 IPv4/IPv6 的 dual-stack WebSocket 端点Amazon EC2Allowed AMIs 新增marketplaceProductCodes、deprecationTimeCondition、creationDateCondition、imageNames四个筛选参数。2.33.122025-09-17AWS Network Firewall在确认并验证 Server Name IndicationSNI之前阻止与目标服务器的 TLS 握手监控仪表盘对 PrivateLink endpoint 候选提供更深洞察并支持按 IP 地址与协议过滤AWS Parallel Computing Service支持 Amazon EC2 Capacity Blocks for MLAmazon EC2新增mac-m4.metal与mac-m4pro.metal实例类型。2.33.112025-09-16AWS Budgets预算配置支持自定义时间周期Amazon CloudWatch Logsmetric 与 subscription filter API 新增 2 个参数可按系统字段值过滤日志事件并可将系统字段值作为维度输出、作为附加元数据发送到客户目标Amazon IVS RealTime支持基于 participant token 中的自定义属性值控制参与者网格布局与 PiP画中画布局中的位置Amazon OpenSearch Ingestion支持 push 型数据源的跨账户摄取包括跨账户共享管道的资源策略、跨 VPC含其他账户 VPC访问的管道端点管理能力。2.33.102025-09-15AWS Cost Explorer新增eusc-de-east-1区域端点支持AWS Health Imaging支持 OpenID ConnectOIDC自定义授权器CloudWatch Observability Admin Service支持在客户 Organization 中启用遥测集中化新增管理 centralization rules 的 API用于将遥测数据复制到组织内的中心目标。2.33.92025-09-12Payment Cryptography Control Plane支持第三方 CA 签发的证书新增GetCertificateSigningRequestAPItr-34 导入/导出支持运行时提供证书。2.33.82025-09-11AWS Elemental MediaLiveMediaPackage output group 支持直接在 MediaLive 侧控制 HLS 相关参数并反映到 MediaPackage 输出Amazon DataZoneIAM 用户 profile 详情中增加 IAM principal idAmazon ECS支持展示生命周期钩子lifecycle hooks详情Amazon EMR Containerscontainer provider 增加nodeLabel支持辅助虚拟集群与安全配置的硬件隔离Amazon Elastic VMware ServiceCreateEnvironment支持isHcxPublic与hcxNetworkAclIdHCX 公网迁移新增AssociateEipToVlan/DisassociateEipFromVlan弹性 IP 关联 APIAmazon GuardDuty更新 Java SDK 对 entity set status 的实现Amazon Prometheus Service新增 Amazon Prometheus Managed Collector 的 Vended Logs APIAmazon QuickSight支持账户级自定义权限、更多 Dashboard 选项、QA 的 Null 支持Amazon RDSRDS Proxy 对 MySQL、MariaDB、PostgreSQL 引擎支持端到端 IAM 认证。2.33.72025-09-10Network Flow MonitorMonitorLocalResource/MonitorRemoteResource的 type 字段新增枚举值AWS::RegionWorkload Insights 与 Monitor top contributors 查询支持新DestinationCategoryINTER_REGIONPayment Cryptography Control Plane支持跨区域密钥复制Multi-Region key replication可选择自动在多个 AWS 区域分发密钥。2.33.62025-09-09AWS Elemental MediaPackage v2HLS 与 LL-HLS manifest 输出增加 CUE 标签SCTEAmazon CloudWatch新增DescribeAlarmContributorsAPI获取 ALARM 状态告警的贡献者DescribeAlarmHistory支持查询告警贡献者历史Amazon Connect支持用户自定义的预定义属性predefined attributesAmazon DataZone支持自定义蓝图custom blueprintsAmazon SageMakerSageMaker Studio 支持 IPv6 dual-stack 域选项新增p6-b200.48xlarge实例类型JupyterLab 与 CodeEditorAuto ScalingCancelInstanceRefresh新增WaitForTransitioningInstances参数取消实例刷新时无需等待进行中的启动/终止。2.33.52025-09-08AWS IoT SiteWiseAPI 新增ComputationModelVersion支持AWS SecurityHubBatchGetStandardsControlAssociations、BatchUpdateStandardsControlAssociations、BatchGetSecurityControls的响应中新增RESOURCE_NOT_FOUND错误码Amazon S3对 Expires 参数的向后兼容处理。2.33.42025-09-05AWS Parallel Computing ServiceSlurmCustomSetting增加AccountingStorageEnforce文档性更新Amazon ECS补充 Availability Zone rebalancing 说明文档性更新Amazon SageMakerNotebooks 支持 IPv6 dual-stackHyperPod 支持 Tiered Storage CheckpointingHosting 支持p5.4xlarge。2.33.32025-09-04AWS Clean RoomsPySpark 作业支持可配置计算规格AWS CloudFormationListHookResults支持检索全部 CloudFormation Hooks 的调用结果此前仅限 create change set 与 Cloud Control 操作并新增按 Hook 状态与 ARN 过滤的可选参数Amazon EC2新增m8i、m8i-flex、i8ge实例类型Amazon RDSProxy API 新增EndpointNetworkType、TargetConnectionNetworkType字段以支持 IPv6Amazon Verified Permissions属性值支持 datetime 与 duration 类型OpenSearch Service Serverless支持 FIPS 与 FedRAMP 合规。2.33.22025-09-03AWS Clean Rooms ML错误摘要增加日志清洗privacy-enhanced自定义模型支持新实例类型性能更好、成本更低弃用 P3 系列实例AWS Clean Rooms支持向现有 collaboration 添加新的数据提供方成员Amazon CloudFrontCustomOriginConfig增加可选字段IpAddressTypeAmazon RDSCreateDBInstance、ModifyDBInstance、CreateDBCluster、ModifyDBCluster支持MasterUserAuthenticationType参数Amazon Route 53支持亚太新西兰区域ap-southeast-6的延迟记录、地理邻近记录与 VPC 私有 DNSAmazon Route 53 Domains新增AU_ELIGIBILITY_TYPE、AU_POLICY_REASON、AU_REGISTRANT_NAME参数Amazon Transcribe StreamingCall Analytics 支持自动语言识别Amazon MQRabbitMQ broker 支持CONFIG_MANAGED认证策略创建 broker 时用户名/密码可省略。2.33.12025-09-02AWS User Notifications新增 Organization 支持——ListMemberAccounts获取成员账户列表、AssociateOrganizationalUnit将 OU 关联到通知配置、DisassociateOrganizationalUnit解除关联、ListOrganizationalUnits展示已配置通知的 OUAmazon EC2DescribeInstanceTypesResponse新增MaximumEbsAttachments、AttachmentLimitType字段InstanceTypes枚举新增g6f、gr6f、r8i、r8i-flex、p5.4xlargeAmazon NeptunepubliclyAccessible参数移除 deprecated 标记并补充用法说明Amazon WorkMailPutEmailMonitoringConfiguration的RoleArn变为可选RegisterToWorkMail增加UnsupportedOperationException。六、升级到 2.33.xBOM 使用方式AWS SDK for Java v2 使用 Maven BOM 统一管理依赖版本本仓库的 BOM 定义位于 bom/pom.xml。升级到 2.33.x 只需将 BOM 版本号改为对应版本如2.33.13例如dependencyManagement dependencies dependency groupIdsoftware.amazon.awssdk/groupId artifactIdbom/artifactId version2.33.13/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement随后即可引用任意服务模块如 S3、EC2、DynamoDB而不必逐个指定版本。由于 2.33.x 内部包含split废弃、X-Forwarded-For 签名行为变化、DynamoDB 注解扩展回滚等行为变更升级前建议重点回归以下场景使用AsyncRequestBody#split的异步上传代码迁移到splitCloseable并确保关闭每个子请求体经反向代理且依赖 X-Forwarded-For 的请求签名链路DynamoDB Enhanced Client 中手工配置表结构且启用了时间戳自动生成扩展的场景自定义 Jackson/Netty 依赖版本的应用注意与 SDK 内嵌版本协调。七、更多变更历史2.33.x 只是 SDK 版本演进的一环。若需了解相邻版本或更早版本的变更可查阅仓库 changelogs 目录下的对应文件如 2.32.x、2.34.x以及根目录 CHANGELOG.md 的汇总条目。服务客户端的具体 API 形态、示例与配置方式可直接参考 services 目录下对应服务模块的源码与 docs 目录下的使用指南。【免费下载链接】aws-sdk-java-v2The official AWS SDK for Java - Version 2项目地址: https://gitcode.com/GitHub_Trending/aw/aws-sdk-java-v2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考