fix: 导出为本地文章时图片域名替换

This commit is contained in:
xiaozzzi 2024-04-06 17:49:55 +08:00
parent 4996bf71b3
commit e21016272c
2 changed files with 17 additions and 7 deletions

View File

@ -209,6 +209,7 @@ public class ArticleBackupService {
if (toLocal == YesNo.YES) { if (toLocal == YesNo.YES) {
backLogs.add(""); backLogs.add("");
if (articleId != null) { if (articleId != null) {
// 查询文章引用的图片
List<ArticleReferenceEntity> refs = referenceService.listPics(articleId); List<ArticleReferenceEntity> refs = referenceService.listPics(articleId);
PictureEntity where = new PictureEntity(); PictureEntity where = new PictureEntity();
where.setUrls(refs.stream().map(ArticleReferenceEntity::getTargetUrl).collect(Collectors.toList())); where.setUrls(refs.stream().map(ArticleReferenceEntity::getTargetUrl).collect(Collectors.toList()));
@ -216,11 +217,16 @@ public class ArticleBackupService {
backLogs.add("[图片备份] 图片个数: " + pics.size()); backLogs.add("[图片备份] 图片个数: " + pics.size());
backLogs.add("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ↓↓ 图片列表 ↓↓ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"); backLogs.add("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ↓↓ 图片列表 ↓↓ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
for (PictureEntity pic : pics) { for (PictureEntity pic : pics) {
backLogs.add("" + pic.getPathName()); try {
FileUtil.copy( FileUtil.copy(
pic.getPathName(), pic.getPathName(),
backupFile.getRootPath() + "/" + pic.getPathName(), backupFile.getRootPath() + "/" + pic.getPathName(),
true); true);
backLogs.add("" + pic.getPathName());
} catch (Exception e) {
backLogs.add("┃ [警告] " + pic.getPathName() + " 未在存储路径中找到");
log.warn("{} 未在存储路径中找到", pic.getPathName());
}
} }
} }
// 备份全部图片 // 备份全部图片
@ -378,7 +384,7 @@ public class ArticleBackupService {
} }
List<ArticleReferenceEntity> refs = referenceService.listPics(articleId); List<ArticleReferenceEntity> refs = referenceService.listPics(articleId);
final String domain = iaasProperties.getBlos().getDomain(); final String domain = paramService.getDomain();
// 计算字符出现的次数 // 计算字符出现的次数
int separatorCount = countChar(articleName, '/'); int separatorCount = countChar(articleName, '/');

View File

@ -173,7 +173,11 @@ public class IaasProperties {
public static class BLOS { public static class BLOS {
/** /**
* BLOS 查看图片的接口的地址, 默认在 PictureController#getFile() 方法中, 末尾带有 "/" 会自动清除 * BLOS 查看图片的接口的地址, 默认在 PictureController#getFile() 方法中, 末尾带有 "/" 会自动清除
*
* @deprecated 该配置项已转移至系统配置 base_sys_param {@link ParamEnum#BLOSSOM_OBJECT_STORAGE_DOMAIN},
* 但在 base_sys_param 为配置时仍然生效
*/ */
@Deprecated
private String domain; private String domain;
/** /**
* BLOS 默认上传地址, 不能为空, 注意不同系统的区分, 末尾带有 "/" 会自动清除 * BLOS 默认上传地址, 不能为空, 注意不同系统的区分, 末尾带有 "/" 会自动清除
@ -202,7 +206,7 @@ public class IaasProperties {
} }
if (blos != null) { if (blos != null) {
String domain = formatDomain(blos.getDomain()); String domain = formatDomain(blos.getDomain());
if (!StrUtil.endWith(domain,"/pic")) { if (!StrUtil.endWith(domain, "/pic")) {
domain = domain + "/pic"; domain = domain + "/pic";
} }
blos.setDomain(domain); blos.setDomain(domain);