package com.xiaopeng.operation.utils; import com.xiaopeng.evi.oss.service.AliOssService; import lombok.extern.slf4j.Slf4j; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import java.io.UnsupportedEncodingException; @Slf4j @Component public class ImageTagProcessor { private final AliOssService aliOssService; public ImageTagProcessor(AliOssService aliOssService) { this.aliOssService = aliOssService; } public String replaceImgSrcWithDownloadUrl(String html) { if (!StringUtils.hasText(html)) { return html; } Document document = Jsoup.parse(html); Elements imgTags = document.select("img"); for (Element imgTag : imgTags) { String dataId = imgTag.attr("data-id"); String dataName = imgTag.attr("data-name"); if (!StringUtils.hasText(dataId) || !StringUtils.hasText(dataName)) { continue; } try { String downloadUrl = aliOssService.getDownloadUrl(dataId, dataName, true); if (StringUtils.hasText(downloadUrl)) { imgTag.attr("src", downloadUrl); } } catch (UnsupportedEncodingException e) { log.warn("replace image src failed, dataId={}, dataName={}", dataId, dataName, e); } } return document.body().html(); } }