生成安全链接 @param link 链接 例如 http://127.0.0.1/bbs-bucket/file/topic/2020-10-11/file/6197f199f6234f2791416282d94a805cb1.rar @param fileName 文件名称 @param secret 密钥 @param expires 有效时间 单位/秒 @return
(String link,String fileName,String secret,Long expires)
| 93 | * @return |
| 94 | */ |
| 95 | public static String createSecureLink(String link,String fileName,String secret,Long expires){ |
| 96 | String uri = UriComponentsBuilder.fromUriString(link).build().getPath(); |
| 97 | String time = String.valueOf((System.currentTimeMillis() / 1000) + expires); |
| 98 | String md5 = org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString(DigestUtils.md5(secret + uri + time)); |
| 99 | |
| 100 | return UriComponentsBuilder.fromUriString(link) |
| 101 | .replaceQueryParam("md5", md5) |
| 102 | .replaceQueryParam("expires", time) |
| 103 | .replaceQueryParam("fileName", fileName) |
| 104 | .build().toString(); |
| 105 | } |
| 106 | |
| 107 | /** |
| 108 | * 本地存储生成安全链接(nginx获取URI包括虚拟目录) |
no test coverage detected