版本: 7.12-8.6
简而言之,当 Elasticsearch 中的加密块(一种数据文件)小于预期大小时,会发生此错误。这可能是由于数据损坏或数据传输不完整导致的。要解决此问题,你可以尝试重新索引数据,确保数据传输完成,或检查数据文件是否存在损坏。如果问题仍然存在,请考虑检查你的加密设置或你的数据与 Elasticsearch 的兼容性。
日志上下文 #
日志 “The encrypted blob [” + blobName + “] is too small [” + bytesRead + “]” 的类名是 EncryptedRepository.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
try {
// read the DEK Id (fixed length) which is prepended to the encrypted blob
final byte[] dekIdBytes = new byte[DEK_ID_LENGTH];
final int bytesRead = Streams.readFully(encryptedDataInputStream; dekIdBytes);
if (bytesRead != DEK_ID_LENGTH) {
throw new RepositoryException(repositoryName; "The encrypted blob [" + blobName + "] is too small [" + bytesRead + "]");
}
final String dekId = new String(dekIdBytes; StandardCharsets.UTF_8);
// might open a connection to read and decrypt the DEK; but most likely it will be served from cache
final SecretKey dek = getDEKById.apply(dekId);
// read and decrypt the rest of the blob





