main
黄海 9 months ago
parent b24a70693e
commit 3d40bab5f8

@ -321,4 +321,15 @@ public class BaseModel {
}
return res;
}
/**
* person_id
*
* @param person_id ID
* @return
*/
public Record getPersonById(String person_id) {
String sql = "select * from t_sys_loginperson where person_id=?";
return Db.findFirst(sql, person_id);
}
}

@ -1,6 +1,5 @@
package com.dsideal.resource.Interceptor;
import com.dsideal.resource.Util.CommonUtil;
import com.dsideal.resource.Util.RetKit;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;

@ -1,12 +1,19 @@
package com.dsideal.resource.Res.Controller;
import com.dsideal.resource.Base.Model.BaseModel;
import com.dsideal.resource.Interceptor.EmptyInterface;
import com.dsideal.resource.Interceptor.IsNumericInterface;
import com.dsideal.resource.Interceptor.JwtCheckInterface;
import com.dsideal.resource.Res.Model.ResourceModel;
import com.dsideal.resource.Util.CommonUtil;
import com.dsideal.resource.Util.JwtUtil;
import com.dsideal.resource.Util.MinioUtils;
import com.dsideal.resource.Util.RetKit;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.GET;
import com.jfinal.ext.interceptor.POST;
import com.jfinal.plugin.activerecord.Page;
import io.github.yedaxia.apidocs.ApiDoc;
import io.minio.errors.*;
@ -19,6 +26,9 @@ import com.jfinal.plugin.activerecord.Record;
@ApiDoc
public class ResourceController extends Controller {
ResourceModel rm = new ResourceModel();
BaseModel bm = new BaseModel();
/**
* Minio
*
@ -43,43 +53,98 @@ public class ResourceController extends Controller {
/**
*
*
*
* @param resource_title
* @param resource_size_int
* @param extension
* @param file_id idguid
* @param file_md5 md5
* @param thumb_id id
* @param scheme_id id
* @param structure_id id
* @param down_count
* @param stage_id id
* @param subject_id id
*/
public void addResource() {
@Before({POST.class})
@JwtCheckInterface({})
public void addResourceBase(String resource_title, long resource_size_int,
String extension, String file_id, String file_md5,
String thumb_id, int scheme_id, int structure_id,
int down_count, int stage_id, int subject_id) {
//当前登录人员
String person_id = JwtUtil.getPersonId(getRequest());
String resource_size = CommonUtil.formatFileSize(resource_size_int);
String person_name = bm.getPersonById(person_id).getStr("person_name");
rm.addResourceBase(resource_title, resource_size, resource_size_int, person_name, person_id, extension,
file_id, file_md5, thumb_id, scheme_id, structure_id, down_count, stage_id, subject_id);
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
*
*
*
* @param resource_id_int id
* @param resource_id_int
*/
public void deleteResource(int resource_id_int) {
@Before({POST.class})
@JwtCheckInterface({})
@IsNumericInterface({"resource_id_int"})
public void delResourceBaseById(int resource_id_int) {
rm.delResourceBaseById(resource_id_int);
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
*
* ID
*
* @param resource_id_int id
* @param resource_id_int
* @param resource_title
* @param resource_size
* @param resource_size_int
* @param person_name
* @param person_id id
* @param extension
* @param file_id idguid
* @param file_md5 md5
* @param thumb_id id
* @param scheme_id id
* @param structure_id id
* @param down_count
* @param stage_id id
* @param subject_id id
* @param update_ts
*/
public void updateResource(int resource_id_int) {
@Before({POST.class})
@JwtCheckInterface({})
@IsNumericInterface({"resource_id_int"})
public void updateResourceBaseById(int resource_id_int, String resource_title, String resource_size, long resource_size_int, String person_name, int person_id, String extension, String file_id, String file_md5, String thumb_id, int scheme_id, int structure_id, int down_count, int stage_id, int subject_id, java.util.Date update_ts) {
rm.updateResourceBaseById(resource_id_int, resource_title, resource_size, resource_size_int, person_name, person_id, extension, file_id, file_md5, thumb_id, scheme_id, structure_id, down_count, stage_id, subject_id, update_ts);
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
*
* ID
*
* @param resource_id_int id
* @param resource_id_int
*/
public void queryResource(int resource_id_int) {
@Before({GET.class})
@JwtCheckInterface({})
@IsNumericInterface("{resource_id_int}")
public void getResourceBaseById(int resource_id_int) {
renderJson(RetKit.renderSuccess(rm.getResourceBaseById(resource_id_int)));
}
/**
*
*
*
* @param pageNum
* @param pageSize
*/
public void queryAllResource() {
@Before({GET.class})
@JwtCheckInterface({})
public void getResourceBaseList(int pageNum, int pageSize) {
Page<Record> listPage = rm.getResourceBaseList(pageNum, pageSize);
renderJson(RetKit.renderSuccess(listPage));
}
}

@ -1,5 +1,102 @@
package com.dsideal.resource.Res.Model;
import cn.hutool.core.date.DateTime;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
public class ResourceModel {
/**
* @param resource_title
* @param resource_size
* @param resource_size_int
* @param person_name
* @param person_id id
* @param extension
* @param file_id idguid
* @param file_md5 md5
* @param thumb_id id
* @param scheme_id id
* @param structure_id id
* @param down_count
* @param stage_id id
* @param subject_id id
*/
public void addResourceBase(String resource_title , String resource_size , long resource_size_int ,
String person_name , String person_id , String extension , String file_id , String file_md5 , String thumb_id , int scheme_id , int structure_id , int down_count , int stage_id , int subject_id){
Record record = new Record();
record.set("resource_title", resource_title);
record.set("resource_size", resource_size);
record.set("resource_size_int", resource_size_int);
record.set("person_name", person_name);
record.set("person_id", person_id);
record.set("extension", extension);
record.set("file_id", file_id);
record.set("file_md5", file_md5);
record.set("thumb_id", thumb_id);
record.set("scheme_id", scheme_id);
record.set("structure_id", structure_id);
record.set("down_count", down_count);
record.set("stage_id", stage_id);
record.set("subject_id", subject_id);
record.set("update_ts", DateTime.now());
Db.save("t_resource_base","resource_id_int",record);
}
/**
@param resource_id_int
*/
public void delResourceBaseById(int resource_id_int){
String sql="delete from t_resource_base where resource_id_int =?";
Db.update(sql,resource_id_int);
}
/**
* @param resource_id_int
* @param resource_title
* @param resource_size
* @param resource_size_int
* @param person_name
* @param person_id id
* @param extension
* @param file_id idguid
* @param file_md5 md5
* @param thumb_id id
* @param scheme_id id
* @param structure_id id
* @param down_count
* @param stage_id id
* @param subject_id id
* @param update_ts
*/
public void updateResourceBaseById(int resource_id_int,String resource_title , String resource_size , long resource_size_int , String person_name , int person_id , String extension , String file_id , String file_md5 , String thumb_id , int scheme_id , int structure_id , int down_count , int stage_id , int subject_id , java.util.Date update_ts){
String sql="update t_resource_base set resource_title =?, resource_size =?, resource_size_int =?, person_name =?, person_id =?, extension =?, file_id =?, file_md5 =?, thumb_id =?, scheme_id =?, structure_id =?, down_count =?, stage_id =?, subject_id =?, update_ts =? where resource_id_int =?";
Db.update(sql,resource_title , resource_size , resource_size_int , person_name , person_id , extension , file_id , file_md5 , thumb_id , scheme_id , structure_id , down_count , stage_id , subject_id , update_ts ,resource_id_int);
}
/**
* @param resource_id_int
*/
public Record getResourceBaseById(int resource_id_int){
String sql="select * from t_resource_base where resource_id_int =?";
return Db.findFirst(sql,resource_id_int);
}
/**
* @param pageNum
* @param pageSize
*/
public Page<Record> getResourceBaseList(int pageNum, int pageSize){
String sql1="select * ";
String sql2=" from t_resource_base";
return Db.paginate(pageNum, pageSize, sql1,sql2);
}
}

@ -121,6 +121,9 @@ public class ResApplication extends JFinalConfig {
//注册一个检查输入文本长度的拦截器
me.add(new LengthInterceptor());
//添加JWT拦截器
me.add(new JwtCheckInterceptor());
}
/**

@ -2,9 +2,7 @@ package com.dsideal.resource.Util;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jfinal.kit.PathKit;
import com.jfinal.kit.StrKit;
import cn.hutool.core.io.IoUtil;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import org.apache.commons.codec.binary.Base64;
@ -13,14 +11,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.JarURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -28,66 +21,23 @@ import java.util.regex.Pattern;
public class CommonUtil {
//在独立的main函数中使用下面的方式进行声明logback对象
private static final Logger log = LoggerFactory.getLogger(CommonUtil.class);
/**
* jar
*
* @return /
*/
public static boolean isRunInJar() {
String resourcePath = "/" + CommonUtil.class.getPackageName().replace(".", "/");
URL url = CommonUtil.class.getResource(resourcePath);
if (url.getProtocol().equals("jar")) {
return true;
}
return false;
}
/**
* jar
*
* @param path
* @return
* @throws IOException
*
* @param size
* @return
*/
public static String txt2String(String path) {
InputStream is = CommonUtil.class.getClassLoader().getResourceAsStream(path);
return IoUtil.read(is, "UTF-8");
public static String formatFileSize(long size) {
String[] units = new String[] { "B", "KB", "MB", "GB", "TB" };
int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
return String.format("%.1f %s", size / Math.pow(1024, digitGroups), units[digitGroups]);
}
/**
* sqllist
*
* @return
*/
public static List<String> getAllSql() throws IOException {
List<String> list = new ArrayList<>();
if (isRunInJar()) {
URL url = CommonUtil.class.getClassLoader().getResource("Sql/");
String jarPath = url.toString().substring(0, url.toString().indexOf("!/") + 2);
URL jarURL = new URL(jarPath);
JarURLConnection jarCon = (JarURLConnection) jarURL.openConnection();
JarFile jarFile = jarCon.getJarFile();
Enumeration<JarEntry> jarEntrys = jarFile.entries();
while (jarEntrys.hasMoreElements()) {
JarEntry entry = jarEntrys.nextElement();
String name = entry.getName();
if (name.startsWith("Sql/") && !entry.isDirectory()) {
list.add(name);
}
}
} else {//如果运行在文件系统中直接加载sql文件
//遍历sql目录下所有的sql文件
File sqlDir;
String basePath = PathKit.getRootClassPath();
sqlDir = new File(basePath + "/Sql");
File[] sqlFiles = sqlDir.listFiles();
for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) {
if (sqlFile.getName().indexOf(".sql") > 0) {//只加载.sql文件
list.add("Sql/"+sqlFile.getName());
}
}
}
return list;
public static void main(String[] args) {
long fileSizeInBytes = 1234567890L; // 假设这是你的文件大小
String formattedSize = formatFileSize(fileSizeInBytes);
System.out.println(formattedSize); // 输出格式化后的文件大小
}
/**

@ -6,6 +6,8 @@ import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.DefaultClaims;
import javax.servlet.http.HttpServletRequest;
import java.net.http.HttpRequest;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@ -53,24 +55,40 @@ public class JwtUtil {
.setSigningKey(secret)
.parseClaimsJws(token)
.getBody();
claims.put("expired",false);
claims.put("expired", false);
} catch (ExpiredJwtException e) {
claims = e.getClaims();
claims.put("expired",true);
claims.put("expired", true);
} catch (Exception e) {
try {
claims = Jwts.parser()
.setSigningKey(secret.getBytes(StandardCharsets.UTF_8))
.parseClaimsJws(token)
.getBody();
claims.put("expired",false);
claims.put("expired", false);
} catch (ExpiredJwtException ee) {
claims = ee.getClaims();
claims.put("expired",true);
claims.put("expired", true);
} catch (Exception err) {
claims = null;
}
}
return claims;
}
/**
* person_id
*
* @param request HttpServletRequest
* @return
*/
public static String getPersonId(HttpServletRequest request) {
//从Http请求头中获取Authorization
String Authorization = request.getHeader("Authorization");
String secret = JwtUtil.SECRET;
String token = Authorization.replaceFirst(JwtUtil.AUTHORIZATION_STARTER, "");
Claims cs = JwtUtil.getClaimsFromToken(token, secret);
String person_id = cs.get("userId").toString();
return person_id;
}
}

@ -0,0 +1,86 @@
/**
* 增加
* @param resource_title 资源名称
* @param resource_size 资源大小
* @param resource_size_int 资源大小
* @param person_name 上传人姓名
* @param person_id 上传人员id
* @param extension 扩展名
* @param file_id 对应文件的id号是一个guid
* @param file_md5 文件的md5值
* @param thumb_id 缩略图id
* @param scheme_id 结构id
* @param structure_id 结构id
* @param down_count 下载次数
* @param stage_id 学段id
* @param subject_id 科目id
* @param update_ts 更新时间
*/
@Before({POST.class})
@JwtCheckInterface({})
public void addResourceBase(String resource_title , String resource_size , long resource_size_int , String person_name , int person_id , String extension , String file_id , String file_md5 , String thumb_id , int scheme_id , int structure_id , int down_count , int stage_id , int subject_id , java.util.Date update_ts){
bm.addResourceBase(resource_title , resource_size , resource_size_int , person_name , person_id , extension , file_id , file_md5 , thumb_id , scheme_id , structure_id , down_count , stage_id , subject_id , update_ts );
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
* 删除
* @param resource_id_int 主键
*/
@Before({POST.class})
@JwtCheckInterface({})
@IsNumericInterface({"resource_id_int"})
public void delResourceBaseById(int resource_id_int){
bm.delResourceBaseById(resource_id_int);
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
按ID修改
* @param resource_id_int 主键
* @param resource_title 资源名称
* @param resource_size 资源大小
* @param resource_size_int 资源大小
* @param person_name 上传人姓名
* @param person_id 上传人员id
* @param extension 扩展名
* @param file_id 对应文件的id号是一个guid
* @param file_md5 文件的md5值
* @param thumb_id 缩略图id
* @param scheme_id 结构id
* @param structure_id 结构id
* @param down_count 下载次数
* @param stage_id 学段id
* @param subject_id 科目id
* @param update_ts 更新时间
*/
@Before({POST.class})
@JwtCheckInterface({})
@IsNumericInterface({"resource_id_int"})
public void updateResourceBaseById(int resource_id_int , String resource_title , String resource_size , long resource_size_int , String person_name , int person_id , String extension , String file_id , String file_md5 , String thumb_id , int scheme_id , int structure_id , int down_count , int stage_id , int subject_id , java.util.Date update_ts){
bm.updateResourceBaseById(resource_id_int , resource_title , resource_size , resource_size_int , person_name , person_id , extension , file_id , file_md5 , thumb_id , scheme_id , structure_id , down_count , stage_id , subject_id , update_ts );
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
按ID查询
* @param resource_id_int 主键
*/
@Before({GET.class})
@JwtCheckInterface({})
@IsNumericInterface("{resource_id_int}")
public void getResourceBaseById(int resource_id_int){
renderJson(RetKit.renderSuccess(bm.getResourceBaseById(resource_id_int)));
}
/**
分页查询
@param pageNum 页码
@param pageSize 每页数量
*/
@Before({GET.class})
@JwtCheckInterface({})
public void getResourceBaseList(int pageNum, int pageSize){
Page<Record> listPage = bm.getResourceBaseList(pageNum, pageSize);
renderJson(RetKit.renderSuccess(listPage));
}

@ -0,0 +1,95 @@
/**
增加
* @param resource_title 资源名称
* @param resource_size 资源大小
* @param resource_size_int 资源大小
* @param person_name 上传人姓名
* @param person_id 上传人员id
* @param extension 扩展名
* @param file_id 对应文件的id号是一个guid
* @param file_md5 文件的md5值
* @param thumb_id 缩略图id
* @param scheme_id 结构id
* @param structure_id 结构id
* @param down_count 下载次数
* @param stage_id 学段id
* @param subject_id 科目id
* @param update_ts 更新时间
*/
public void addResourceBase(String resource_title , String resource_size , long resource_size_int , String person_name , int person_id , String extension , String file_id , String file_md5 , String thumb_id , int scheme_id , int structure_id , int down_count , int stage_id , int subject_id , java.util.Date update_ts){
Record record = new Record();
record.set("resource_title", resource_title);
record.set("resource_size", resource_size);
record.set("resource_size_int", resource_size_int);
record.set("person_name", person_name);
record.set("person_id", person_id);
record.set("extension", extension);
record.set("file_id", file_id);
record.set("file_md5", file_md5);
record.set("thumb_id", thumb_id);
record.set("scheme_id", scheme_id);
record.set("structure_id", structure_id);
record.set("down_count", down_count);
record.set("stage_id", stage_id);
record.set("subject_id", subject_id);
record.set("update_ts", update_ts);
Db.save("t_resource_base","resource_id_int",record);
}
/**
删除
@param resource_id_int 主键
*/
public void delResourceBaseById(int resource_id_int){
String sql="delete from t_resource_base where resource_id_int =?";
Db.update(sql,resource_id_int);
}
/**
修改
* @param resource_id_int 主键
* @param resource_title 资源名称
* @param resource_size 资源大小
* @param resource_size_int 资源大小
* @param person_name 上传人姓名
* @param person_id 上传人员id
* @param extension 扩展名
* @param file_id 对应文件的id号是一个guid
* @param file_md5 文件的md5值
* @param thumb_id 缩略图id
* @param scheme_id 结构id
* @param structure_id 结构id
* @param down_count 下载次数
* @param stage_id 学段id
* @param subject_id 科目id
* @param update_ts 更新时间
*/
public void updateResourceBaseById(int resource_id_int,String resource_title , String resource_size , long resource_size_int , String person_name , int person_id , String extension , String file_id , String file_md5 , String thumb_id , int scheme_id , int structure_id , int down_count , int stage_id , int subject_id , java.util.Date update_ts){
String sql="update t_resource_base set resource_title =?, resource_size =?, resource_size_int =?, person_name =?, person_id =?, extension =?, file_id =?, file_md5 =?, thumb_id =?, scheme_id =?, structure_id =?, down_count =?, stage_id =?, subject_id =?, update_ts =? where resource_id_int =?";
Db.update(sql,resource_title , resource_size , resource_size_int , person_name , person_id , extension , file_id , file_md5 , thumb_id , scheme_id , structure_id , down_count , stage_id , subject_id , update_ts ,resource_id_int);
}
/**
单条查询
* @param resource_id_int 主键
*/
public Record getResourceBaseById(int resource_id_int){
String sql="select * from t_resource_base where resource_id_int =?";
return Db.findFirst(sql,resource_id_int);
}
/**
分页查询
* @param pageNum 当前页码
* @param pageSize 每页显示条数
*/
public Page<Record> getResourceBaseList(int pageNum, int pageSize){
String sql1="select * ";
String sql2=" from t_resource_base";
return Db.paginate(pageNum, pageSize, sql1,sql2);
}

@ -1,66 +0,0 @@
/**
* 增加资源目录结构
* @param structure_name 章节目录名称
* @param parent_id 上级目录ID
* @param scheme_id 版本ID
* @param sort_id 排序号
* @param owern_id 1东师理想提供结构2用户自定义结构
*/
@Before({POST.class})
@JwtCheckInterface({})
public void addResourceStructure(String structure_name , int parent_id , int scheme_id , int sort_id , int owern_id){
bm.addResourceStructure(structure_name , parent_id , scheme_id , sort_id , owern_id );
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
* 删除资源目录结构
* @param structure_id 主键
*/
@Before({POST.class})
@JwtCheckInterface({})
@IsNumericInterface({"structure_id"})
public void delResourceStructureById(int structure_id){
bm.delResourceStructureById(structure_id);
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
按ID修改资源目录结构
* @param structure_id 主键
* @param structure_name 章节目录名称
* @param parent_id 上级目录ID
* @param scheme_id 版本ID
* @param sort_id 排序号
* @param owern_id 1东师理想提供结构2用户自定义结构
*/
@Before({POST.class})
@JwtCheckInterface({})
@IsNumericInterface({"structure_id"})
public void updateResourceStructureById(int structure_id , String structure_name , int parent_id , int scheme_id , int sort_id , int owern_id){
bm.updateResourceStructureById(structure_id , structure_name , parent_id , scheme_id , sort_id , owern_id );
renderJson(RetKit.renderSuccess("操作成功"));
}
/**
按ID查询资源目录结构
* @param structure_id 主键
*/
@Before({GET.class})
@JwtCheckInterface({})
@IsNumericInterface("{structure_id}")
public void getResourceStructureById(int structure_id){
renderJson(RetKit.renderSuccess(bm.getResourceStructureById(structure_id)));
}
/**
分页查询资源目录结构
@param pageNum 页码
@param pageSize 每页数量
*/
@Before({GET.class})
@JwtCheckInterface({})
public void getResourceStructureList(int pageNum, int pageSize){
Page<Record> listPage = bm.getResourceStructureList(pageNum, pageSize);
renderJson(RetKit.renderSuccess(listPage));
}

@ -1,65 +0,0 @@
/**
增加资源目录结构
* @param structure_name 章节目录名称
* @param parent_id 上级目录ID
* @param scheme_id 版本ID
* @param sort_id 排序号
* @param owern_id 1东师理想提供结构2用户自定义结构
*/
public void addResourceStructure(String structure_name , int parent_id , int scheme_id , int sort_id , int owern_id){
Record record = new Record();
record.set("structure_name", structure_name);
record.set("parent_id", parent_id);
record.set("scheme_id", scheme_id);
record.set("sort_id", sort_id);
record.set("owern_id", owern_id);
Db.save("t_resource_structure","structure_id",record);
}
/**
删除资源目录结构
@param structure_id 主键
*/
public void delResourceStructureById(int structure_id){
String sql="delete from t_resource_structure where structure_id =?";
Db.update(sql,structure_id);
}
/**
修改资源目录结构
* @param structure_id 主键
* @param structure_name 章节目录名称
* @param parent_id 上级目录ID
* @param scheme_id 版本ID
* @param sort_id 排序号
* @param owern_id 1东师理想提供结构2用户自定义结构
*/
public void updateResourceStructureById(int structure_id,String structure_name , int parent_id , int scheme_id , int sort_id , int owern_id){
String sql="update t_resource_structure set structure_name =?, parent_id =?, scheme_id =?, sort_id =?, owern_id =? where structure_id =?";
Db.update(sql,structure_name , parent_id , scheme_id , sort_id , owern_id ,structure_id);
}
/**
单条查询资源目录结构
* @param structure_id 主键
*/
public Record getResourceStructureById(int structure_id){
String sql="select * from t_resource_structure where structure_id =?";
return Db.findFirst(sql,structure_id);
}
/**
分页查询资源目录结构
* @param pageNum 当前页码
* @param pageSize 每页显示条数
*/
public Page<Record> getResourceStructureList(int pageNum, int pageSize){
String sql1="select * ";
String sql2=" from t_resource_structure";
return Db.paginate(pageNum, pageSize, sql1,sql2);
}

@ -8,7 +8,7 @@ jdbcUrl=jdbc:mysql://10.10.14.210:22066/ds_db?useUnicode=true&characterEncoding=
beanPath=D:/dsWork/dsProject/dsUtils/src/main/java/com/dsideal/Code
# 表
tableName=t_resource_structure
tableName=t_resource_base
# dao的名称
daoName=bm

@ -32,6 +32,6 @@ minioadmin
#### 匿名访问
进入桶管理配置匿名访问规则。Prefix输入 /Access选择 readonly。保存后再次访问`http://10.10.14.212:9090/dsideal/安吉丽娜朱莉.jpg`可以看到图片了。
进入桶管理配置匿名访问规则。Prefix输入 /Access选择 readonly。保存后再次访问`http://10.10.14.210:9090/dsideal/安吉丽娜朱莉.jpg`可以看到图片了。
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202409050828779.png)

Loading…
Cancel
Save