使用Rclone迁移数据到MinIO
环境
操作系统:CentOS
前言部署好MinIO服务之后,将旧数据迁移至MioIO是个问题,MinIO兼容支持亚马逊S3协议,正是这一点Rclone这一工具也支持亚马逊S3协议,用Rclone来迁移再好不过了
迁移准备
安装Rclone,查看文章:CentOS安装Rclone
在MinIO创建好需要用的“桶”
操作Rclone配置文件修改配置文件
vim /root/.config/rclone/rclone.conf
[minio]type = s3env_auth = falseprovider = Minioaccess_key_id = adc secret_access_key = 123region =endpoint = http://127.0.0.1:9000
配置稍微解释一下 [minio] # 随便自定义,但是下面要用到 type = s3 # s3 固定 env_auth = false # 加不加都行 provider = Minio # 加不加都行,不加就是空字符串 access_key_id = adc # ...
CentOS安装Rclone
环境操作系统:CentOS 7
在线安装命令curl https://rclone.org/install.sh sudo bash
生成配置文件rclone config
#按照提示输入相应配置,不知道就随便输入后面可以改,生成的文件路径:/root/.config/rclone/rclone.conf
验证rclone --version
出现版本号即可
注意据网上有些文章说在线安装需要翻墙,由于测试服务器在香港地区所以不确定是否真的需要翻墙,如果你的机器使用本方法不通,尝试翻墙
MinIO设置永久分享链接
前言MinIO官方规定,分享链接最长时间只能是7天 其实所谓的永久分享链接,大家想一下,永久分享和公开没什么两样
操作在MinIO中引入了“桶”的概念,默认创建桶的权限是private私有的,也就是桶内的文件是不允许外界直接访问的, 所谓设置永久分享链接就是将创建的桶的权限设置公开:public即可,就可以实现通过:地址/桶名称/文件名直接访问,比如访问的是图片,假如:https://minio.itze.cn/image/logo.png 地址放到浏览器即可直接访问
设置“桶”为公开,如图设置即可
MinIO+Nginx开启https域名访问
前言:按照文章顺序操作,踩过的坑都避开了!环境
文章建立在MinIO服务是通过Docker容器创建
假设本文以下使用域名:minio.itze.cn
假设服务器IP:123.123.123.123
前期准备1.将域名解析到服务器IP查看解析成功示例,windows下使用命令
ping minio.itze.cn -t
出现如上图所示,说明域名已经解析到对应的IP地址,会有人问:去哪里添加解析,答:去购买域名的厂商控制台,比如你的域名是阿里云注册的,就登陆阿里云控制台有相关解析操作流程
2.申请域名对应的SSL免费证书,PS:资金富裕的直接付费买这里提供一个申请免费的地址,每次申请有效期1年,https://console.cloud.tencent.com/ssl 申请SSL注意事项:按照提示,需要有验证域名是你的操作,一般两种方式,1.DNS,2.文件,建议使用推荐的方法添加一条解析即可,一般十几分钟就能颁发证书,证书颁发后选择-下载-Nginx
nginx反向代理MinIO API地址并配置https这里利用到了Nginx的反向代理,配置文件如下,建议不要改动原来的nginx ...
Docker部署MinIO
环境操作系统:CentOS 7 Docker版本:20.10.10
1.搜索MinIO镜像选择第一个,minio/minio,或者去hub.docker.com去搜索也可以
docker search minio
2.拉取MinIO镜像docker pull minio/minio
3.创建容器创建容器之前先创建两个文件夹,用来映射,假设我在服务器创建的路径是:/root/data和、/root/config,创建容器的命令如下
docker run -d -p 9000:9000 -p 50000:50000 --name minio \-e "MINIO_ROOT_USER=admin" \-e "MINIO_ROOT_PASSWORD=123456" \-e "MINIO_SERVER_URL=http://127.0.0.1:9000 " \-v /root/data:/data \-v /root/config:/root/.minio \minio/mini ...
gitlab prometheus占用磁盘过大
环境操作系统:CentOS 7
问题私有化部署gitlab,后期发现磁盘占用过高,经过查询是gitlab中prometheus的data文件夹占用过大,据说这是prometheus的监控日志,我这里每天会产生大概80M左右的文件,默认是保留15天的
解决经过查阅,网上大致给出的都是两种方式 gitlab配置文件默认位置:/etc/gitlab/gitlab.rb
方式一直接停止prometheus的监控,操作方法,找到配置文件中以下代码块,默认是注释掉的
# prometheus['enable'] = true# prometheus['monitor_kubernetes'] = true# prometheus['username'] = 'gitlab-prometheus'# prometheus['group'] = 'gitlab-prometheus'# prometheus['uid'] = nil# ...
It is illegal to call this method if the current request is not in asynchron
问题在使用切面+自定义注解实现日志记录时报的错
原因proceedingJoinPoint.getArgs()返回的数组中携带有Request或者Response对象,导致序列化异常
解决过滤掉之后再转换
//获取传参信息Object[] args = proceedingJoinPoint.getArgs();//过滤无法序列化Stream<?> stream = ArrayUtils.isEmpty(args) ? Stream.empty() : Arrays.stream(args);List<Object> logArgs = stream .filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse))) .collect(Collectors.toList());//过滤后序列化无异常String requestParam = JSON.toJSONString(logArgs ...
GeoServer服务wms权限控制
环境操作系统:CentOS 7 Tomcat版本:8.5.x GeoServer版本:2.21
操作详细权限配置见文章:GeoServer服务访问权限控制
wms服务验证调用
假如wms原始不加权限验证调用地址是:https://127.0.0.1:8080/geoserver/wms\_workspace/wms?service=WMS&version=1.0&request=GetMap&layers=test\_layer&styles=&format=application/openlayers
如果此时按照调用瓦片方式去调用,则地址是: https://127.0.0.1:8080/geoserver/wms\_workspace/wms?service=WMS&version=1.0&request=GetMap&layers=test\_layer&styles=&format=application/openlayers?authkey=123456 这种方式经过测试,接口验证地址是拿不到验 ...
GeoServer服务访问权限控制
环境
操作系统:CentOS 7
Tomcat版本:8.5.x
GeoServer版本:2.21
部署方式使用geoserver提供的war包,通过tomcat部署运行,具体部署方式略过
操作第一步,设置身份验证器
注意如果第二步中没有显示:AuthKey 这个,就自己去官网下载安装一个 下载地址:Key authentication 安装方法:将下载好的压缩包中的jar包全部复制到tomcat/webapps/geoserver/WEB-INF/lib 文件夹中,然后重启tomcat服务即可
第二步,设置过滤器 修改默认 添加新的
webService URL这种方式是通过geoserver自己去调用自定义的接口验证地址,示例代码
@GetMapping("geoServerAuth")public String geoServerAuth(@RequestParam String authkey) { //验证key业务代码,省略,自己填补 if(1==1){ ...
RedisTemplate批量获取值
multiGet方式/** * 同时获取redis多个key值 * @author www.itze.cn **/public List<Object> mGetTypeGetValue(Set matchKey) { try { return redisTemplate.opsForValue().multiGet(matchKey); } catch (Exception e) { log.info("异常:", e); e.printStackTrace(); } return null;}
plpeline方式,推荐使用该方法/** * 批量获取key值对应的Value * @author www.itze.cn * @param matchKey * @return */public List<Object> pipeLineTypeGetValue(Set<String> matchKey) ...