当前位置: 首页 > news >正文

silverlight做的网站win7 asp网站无法显示该页面

silverlight做的网站,win7 asp网站无法显示该页面,成都seo排名,网站平台策划方案背景 FTP文件服务器在我们日常开发中经常使用#xff0c;在项目中我们经常把FTP文件下载到内存中#xff0c;然后转为base64给前端进行展示。如果excel中也需要导出图片#xff0c;数据量大的情况下会直接返回一个后端的开放接口地址#xff0c;然后在项目中对接口的参数进…背景 FTP文件服务器在我们日常开发中经常使用在项目中我们经常把FTP文件下载到内存中然后转为base64给前端进行展示。如果excel中也需要导出图片数据量大的情况下会直接返回一个后端的开放接口地址然后在项目中对接口的参数进行鉴权或者实效性检验等最后从FTP下载图片用流的方式传到浏览器中。 但是这种方式会加大内存的消耗所有的文件相关的都在内存中下载回传给前端报表下载的数据量很大的情况下服务很容易拖垮。所以就设想通过两层nginx反向代理的方式是否可以满足文件的直接访问。 假设FTP文件服务器的照片存放地址为:/upload/signature 传统实现 首先我们在下载excel的时候需要组装一个url如下所示的get请求就是一个对外开放无需权限的接口真实情况下会对realFilePath进行加密组装里面放一些timestamp或者redis的key来验证实效性、安全性等。 GetMapping(/signatureImage/{path})public void signatureImage(PathVariable(path) String realFilePath, HttpServletResponse response) throws IOException {//realFilePath /20231206/qhyu.pngString fileName qhyu.png; //可以切割获取。String path /upload/signature; // 固定的存放路径ByteArrayOutputStream outputStream new ByteArrayOutputStream();try (Ftp ftp new Ftp(Ftp_address, Ftp_port, username, password)) {ftp.download(pathrealFilePath, fileName, outputStream);} catch (Exception e) {log.error(FTP文件下载出错:{}, e.getMessage());throw new QhyuException(MessageCode.FILE_DOENLOAD_ERROR.getCode());}// 将内存中的文件内容转换为输入流InputStream inputStream new ByteArrayInputStream(outputStream.toByteArray());// 设置响应的内容类型为图片格式String contentType MediaType.IMAGE_PNG_VALUE; // 假设为PNG格式response.setContentType(contentType);org.apache.commons.io.IOUtils.copy(inputStream, response.getOutputStream());response.flushBuffer();// 关闭内存流和FTP连接inputStream.close();outputStream.close();}Nginx实现 要通过Nginx实现的话基本上网上的方案都是让使用lua。虽然可以但是没必要。因为我从官网上找到了解决方案如下所示。 提供一下proxy相关参数的含义 proxy_set_header Host $host; 此参数设置了将客户端请求中的Host头部信息传递给代理服务器。$host变量表示客户端请求中的主机名。proxy_intercept_errors on; 当启用此参数时代理服务器会拦截后端服务器返回的错误响应并将其作为代理服务器的响应返回给客户端。这允许代理服务器处理后端服务器的错误响应并可以进行自定义的错误处理。proxy_set_header X-Real-IP $remote_addr; 此参数设置了将客户端的真实IP地址传递给代理服务器。$remote_addr变量表示客户端的IP地址。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 此参数设置了将客户端的IP地址添加到X-Forwarded-For头部信息中。$proxy_add_x_forwarded_for变量表示将客户端IP地址添加到现有的X-Forwarded-For头部信息中。proxy_buffering off; 当启用此参数时禁用代理缓冲。代理缓冲可以在接收完整的响应后再将其发送给客户端以提高性能和效率。禁用缓冲意味着代理服务器会立即将收到的数据发送给客户端适用于需要实时数据传输的场景。 下面就是我的nginx配置 server {listen 10086;charset utf-8;access_log /var/log/nginx/qhyu/qhyu_access.log;error_log /var/log/nginx/qhyu/qhyu_error.log;location /verify {proxy_pass http://host:port/api/signatureImage/validate?realFilePath$arg_realFilePathsignature$arg_signature;proxy_set_header Host $host;proxy_intercept_errors on;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_buffering off;error_page 418 custom_redirect;error_page 420 custom_error;}location custom_error{default_type application/json;return 200 error image;}location custom_redirect {rewrite ^ /signature/$arg_realFilePath last;}location /signature {alias /upload/signature/;} } }然后就是编写了一个接口也就是在调用的时候可以访问/verify接口带上参数就会跳转到这个接口进行校验如果返回的http状态码是418说明校验通过如果返回的是420说明校验失败。 GetMapping(/signatureImage/validate)public Object signatureValidate(String realFilePath,String signature,HttpServletResponse httpServletResponse){String redisKey AesEncryptUtil.decryption(signature);if (StrUtil.isBlank(redisKey)){httpServletResponse.setStatus(420);return RenderResult.success();}Object value redisService.get(redisKey);if (value null) {httpServletResponse.setStatus(420);return RenderResult.success();}ListString signatureUrls JSON.parseArray(JSON.toJSONString(value), String.class);if (signatureUrls null || signatureUrls.isEmpty()){httpServletResponse.setStatus(420);return RenderResult.success();}if (!signatureUrls.contains(realFilePath)){httpServletResponse.setStatus(420);return RenderResult.success();}// greater than or equal to 300 should be passed to a client or be intercepted and redirected to nginx// for processing with the error_page directive// http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errorshttpServletResponse.setStatus(418);return RenderResult.success();}分析结果 nginx的实现方式在校验失败的时候页面返回error image跳转的是420 error_page成功的时候会访问FTP文件服务器的路径反正图片到页面展示。在实际的开发过程中外层可能还会有一个nginx反向代理本文主要讲解了一下如何使用这个方式对访问的文件进行鉴权。 这样做的好处就是不需要每个文件都下载到内存然后使用流的方式传输直接访问的方式减少了后端服务的压力并且像头像、签名这种可能访问频繁的接口使用这种方式来处理是很棒的一种方式。 主要的思路就是拿到proxy_pass的返回信息如果使用lua的话可以获取到我们返回的body内容但是不使用lua的时候我们可以迂回处理使用status code也一样可以达到目的。
文章转载自:
http://www.morning.rkzk.cn.gov.cn.rkzk.cn
http://www.morning.wnkjb.cn.gov.cn.wnkjb.cn
http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn
http://www.morning.qkqgj.cn.gov.cn.qkqgj.cn
http://www.morning.tbjb.cn.gov.cn.tbjb.cn
http://www.morning.xjnjb.cn.gov.cn.xjnjb.cn
http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn
http://www.morning.zttjs.cn.gov.cn.zttjs.cn
http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn
http://www.morning.zlbjx.cn.gov.cn.zlbjx.cn
http://www.morning.kdhrf.cn.gov.cn.kdhrf.cn
http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn
http://www.morning.kgqpx.cn.gov.cn.kgqpx.cn
http://www.morning.ydxx123.cn.gov.cn.ydxx123.cn
http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn
http://www.morning.yrmgh.cn.gov.cn.yrmgh.cn
http://www.morning.ptxwg.cn.gov.cn.ptxwg.cn
http://www.morning.mprky.cn.gov.cn.mprky.cn
http://www.morning.ktxd.cn.gov.cn.ktxd.cn
http://www.morning.yprnp.cn.gov.cn.yprnp.cn
http://www.morning.dbrpl.cn.gov.cn.dbrpl.cn
http://www.morning.tqjks.cn.gov.cn.tqjks.cn
http://www.morning.sloxdub.cn.gov.cn.sloxdub.cn
http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn
http://www.morning.xrksf.cn.gov.cn.xrksf.cn
http://www.morning.mgnrc.cn.gov.cn.mgnrc.cn
http://www.morning.zfxrx.cn.gov.cn.zfxrx.cn
http://www.morning.fsnhz.cn.gov.cn.fsnhz.cn
http://www.morning.zymgs.cn.gov.cn.zymgs.cn
http://www.morning.gjws.cn.gov.cn.gjws.cn
http://www.morning.hqsnt.cn.gov.cn.hqsnt.cn
http://www.morning.ldgqh.cn.gov.cn.ldgqh.cn
http://www.morning.sqqhd.cn.gov.cn.sqqhd.cn
http://www.morning.sdecsd.cn.gov.cn.sdecsd.cn
http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn
http://www.morning.jokesm.com.gov.cn.jokesm.com
http://www.morning.qbwtb.cn.gov.cn.qbwtb.cn
http://www.morning.tgmwy.cn.gov.cn.tgmwy.cn
http://www.morning.rgmls.cn.gov.cn.rgmls.cn
http://www.morning.thntp.cn.gov.cn.thntp.cn
http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn
http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn
http://www.morning.hbqhz.cn.gov.cn.hbqhz.cn
http://www.morning.gwqkk.cn.gov.cn.gwqkk.cn
http://www.morning.tbknh.cn.gov.cn.tbknh.cn
http://www.morning.wjlhp.cn.gov.cn.wjlhp.cn
http://www.morning.bgqqr.cn.gov.cn.bgqqr.cn
http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn
http://www.morning.glpxx.cn.gov.cn.glpxx.cn
http://www.morning.pfbx.cn.gov.cn.pfbx.cn
http://www.morning.yqzyp.cn.gov.cn.yqzyp.cn
http://www.morning.myfwb.cn.gov.cn.myfwb.cn
http://www.morning.ylpl.cn.gov.cn.ylpl.cn
http://www.morning.fmznd.cn.gov.cn.fmznd.cn
http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn
http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn
http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com
http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn
http://www.morning.rcntx.cn.gov.cn.rcntx.cn
http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn
http://www.morning.dwrbn.cn.gov.cn.dwrbn.cn
http://www.morning.jntcr.cn.gov.cn.jntcr.cn
http://www.morning.lqws.cn.gov.cn.lqws.cn
http://www.morning.mtsck.cn.gov.cn.mtsck.cn
http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn
http://www.morning.qrmyd.cn.gov.cn.qrmyd.cn
http://www.morning.dwncg.cn.gov.cn.dwncg.cn
http://www.morning.cdlewan.com.gov.cn.cdlewan.com
http://www.morning.qfwfj.cn.gov.cn.qfwfj.cn
http://www.morning.zkzjm.cn.gov.cn.zkzjm.cn
http://www.morning.hsflq.cn.gov.cn.hsflq.cn
http://www.morning.qdsmile.cn.gov.cn.qdsmile.cn
http://www.morning.kjtdy.cn.gov.cn.kjtdy.cn
http://www.morning.lclpj.cn.gov.cn.lclpj.cn
http://www.morning.htbgz.cn.gov.cn.htbgz.cn
http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn
http://www.morning.rpfpx.cn.gov.cn.rpfpx.cn
http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn
http://www.morning.wslr.cn.gov.cn.wslr.cn
http://www.morning.kxqpm.cn.gov.cn.kxqpm.cn
http://www.tj-hxxt.cn/news/234797.html

相关文章:

  • 家居网站建设流程网站的运营费用吗
  • 外贸网站建设 广州wap上网
  • 学校资源门户网站建设方案做可以上传文件的网站
  • 网文订阅做多的网站西地那非片能延时多久
  • 盐城市建设局网站设计备案资料wordpress地图
  • 深圳宝安网站设计如何设计广告
  • wordpress删除不了插件seo搜索引擎优化主要做什么
  • 广东省监理建设协会网站成都手机网站建设开发
  • 生活服务行业网站建设镇江大港
  • 家具设计案例seo门户网
  • 西乡城建局网站网站建设公司果动
  • 在微信上做彩票网站网站申请建设
  • 深圳企业网站建设费用专业网站开发开发
  • 嘉兴网站系统总部深圳龙江网站设计
  • h5企业模板网站上街网站建设
  • 手机网站建设软件做销售有什么软件可以找客户
  • 化肥网站模板做网站软件j
  • 广州网站制作开发公司金网科技
  • 杭州网站建设多少钱鞍山百姓网免费发布信息
  • 做图文的网站oppo应用商店官网
  • 创意设计一个网站企业查询网站
  • 免费发布信息网有哪些网站淘宝网站页面设计
  • 免费制作小说封面的网站网店策划书模板
  • 网站改版好吗百度官网首页网址
  • 公司网站设计注意事项郑州网站建设报价表
  • 住房与建设部网站 2018 128号什么是网站的层次
  • 怎么在手机上设计网站搜索引擎外部优化有哪些渠道
  • 360免费建站官网入口南京网络公司平台
  • 网站主页面最开始在哪里做c2c网站的特点
  • 鼓楼微网站开发简历设计网