docker容器中启动fastdfs tracker服务和storage服务
这里下载的是 delron/fastdfs 其中内置了nginx设置
进入storage容器里 /etc/fdfs/http.conf 配置 修改其中配置
把http.anti_steal.check_token = true 该配置修改为true 即可,并重启 storage 和tracker服务
这里遇到了一个坑,docker restart storage服务后 docker ps 后发现该服务并未启动
删除映射文件下中的 storage/data/fdfs_storaged.pid文件 再次docker restart 即可启动
spring项目中使用 fastdfs-client-java 1.29jar包中的
ProtoCommon.getToken(fid, ts, secret_key) 方法即可获得校验token信息.
1.29jar可根据资源下载后通过mvn命令打成jar放进项目里使用
到此,fastdfs防盗链设置完成.
/** * 获取访问服务器你的tooken 拼接到路径后面 * @param fid 文件路径 M00/00/00/wKgzgFnkTPyAIAUGAAEoRmXZPp876.jpeg * @param secret_key 密钥 * @return 返回token,如: token=078d370098b03e9020b82c829c205e1f&ts=1508141521 */ public String getToken(String fid, String secret_key){ // String substring = fid.substring(fid.indexOf("/")+1); //unix时间戳 以秒为单位 int ts = (int) (System.currentTimeMillis() / 1000); String token=new String(); try { token= ProtoCommon.getToken(fid, ts, secret_key); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } String IP = "http://192.168.24.128:8888/group1/"; StringBuilder sb = new StringBuilder(); sb.append(IP); sb.append(fid); sb.append("?token=").append(token); sb.append("&ts=").append(ts); //System.out.println(sb.toString()); return sb.toString(); }