使用 AmazonS3EncryptionClientV2

问题描述

在使用 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 (将#修改为@)