add GaoPackage
This commit is contained in:
+16
-1
@@ -59,6 +59,7 @@ public class AttachmentVariantServiceImplement implements AttachmentVariantServi
|
||||
private static final long THUMB_CACHE_TTL = Time.D * 7;
|
||||
private static final long THUMB_LOCK_TTL = Time.M * 10;
|
||||
private static final double THUMB_TARGET_SECONDS = 2;
|
||||
private static final int VARIANT_NAME_MAX_LENGTH = 255;
|
||||
private static final String THUMB_OUTPUT_FORMAT = "png";
|
||||
private static final String THUMB_ALGORITHM_VERSION = "v3";
|
||||
private static final String THUMB_LOCK_KEY_PREFIX = "ATTACHMENT:THUMB:LOCK:";
|
||||
@@ -158,7 +159,7 @@ public class AttachmentVariantServiceImplement implements AttachmentVariantServi
|
||||
thumbFile = createThumbFile(source, requestWidth, requestHeight, fitMode, isImage);
|
||||
variant = new AttachmentVariant();
|
||||
variant.setId(UUID.randomUUID().toString());
|
||||
variant.setName(Network.simpleURIFileName(source.getName()) + "." + THUMB_OUTPUT_FORMAT);
|
||||
variant.setName(buildVariantName(source.getName()));
|
||||
variant.setMimeType("image/" + THUMB_OUTPUT_FORMAT);
|
||||
long expireAt = Time.now() + THUMB_CACHE_TTL;
|
||||
variant.setSourceAttachmentId(source.getId());
|
||||
@@ -257,6 +258,20 @@ public class AttachmentVariantServiceImplement implements AttachmentVariantServi
|
||||
);
|
||||
}
|
||||
|
||||
/// 构建不超过数据库字段长度的变体名称
|
||||
///
|
||||
/// @param sourceName 源附件名称
|
||||
/// @return 变体名称
|
||||
private String buildVariantName(String sourceName) {
|
||||
String suffix = "." + THUMB_OUTPUT_FORMAT;
|
||||
String baseName = Network.simpleURIFileName(sourceName);
|
||||
int maxBaseLength = VARIANT_NAME_MAX_LENGTH - suffix.length();
|
||||
if (maxBaseLength < baseName.codePointCount(0, baseName.length())) {
|
||||
baseName = baseName.substring(0, baseName.offsetByCodePoints(0, maxBaseLength));
|
||||
}
|
||||
return baseName + suffix;
|
||||
}
|
||||
|
||||
private File createThumbFile(
|
||||
Attachment source,
|
||||
Integer requestWidth,
|
||||
|
||||
Reference in New Issue
Block a user