问题描述
在使用 AmazonS3EncryptionClientV2 和分段上传上传 100gb 文件时遇到问题。通过 65GB 后 - SDK 抛出异常
Caused by: java.lang.IllegalStateException: Attempt to process too many blocks
at org.bouncycastle.crypto.modes.GCMBlockCipher.getNextCTRBlock(UnkNown Source)
at org.bouncycastle.crypto.modes.GCMBlockCipher.processBlock(UnkNown Source)
at org.bouncycastle.crypto.modes.GCMBlockCipher.processBytes(UnkNown Source)
at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$AEADGenericBlockCipher.processBytes(UnkNown Source)
at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineUpdate(UnkNown Source)
at java.base/javax.crypto.Cipher.update(Cipher.java:1872)
at com.amazonaws.services.s3.internal.crypto.CipherLite.update(CipherLite.java:297)
at com.amazonaws.services.s3.internal.crypto.GCMCipherLite.update(GCMCipherLite.java:153)
at com.amazonaws.services.s3.internal.crypto.CipherLiteInputStream.nextChunk(CipherLiteInputStream.java:243)
at com.amazonaws.services.s3.internal.crypto.CipherLiteInputStream.readNextChunk(CipherLiteInputStream.java:118)
at com.amazonaws.services.s3.internal.crypto.CipherLiteInputStream.read(CipherLiteInputStream.java:95)
在文档中搜索并发现默认情况下客户端配置了 CryptoMode.StrictAuthenticatedEncryption
说
可以加密的最大消息大小(以字节为单位)的限制 在这种模式下是 2^36-32,或 ~64G,由于安全限制 NIST 推荐的 AES/GCM。
还有其他方法可以使用 Java SDK 上传这么大的加密文件吗? 谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)