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

asp.net 知名网站策划公司口号

asp.net 知名网站,策划公司口号,健康类网站模板,怎么做淘宝联盟的推广网站一、背景 有个需求是这样的#xff0c;客户端直接通过外网访问oss获取图片需要额外付费#xff0c;考虑到成本问题#xff0c;修改技术方案为#xff1a;客户端将请求链接发给后端#xff0c;后端根据请求做一定的截取或拼接#xff0c;通过内网调用oss#xff0c;再将…一、背景 有个需求是这样的客户端直接通过外网访问oss获取图片需要额外付费考虑到成本问题修改技术方案为客户端将请求链接发给后端后端根据请求做一定的截取或拼接通过内网调用oss再将下载下来的图片流返回给前端。 图片流展现在页面上就是直接返回一张图片在浏览器上。 二、具体代码展示  前端期望如果异常直接把http status返回非200 Slf4j RestController public class PictureController {Autowiredprivate PictureService pictureService;RequestMapping(value getPicture)public void getPicture(String path, HttpServletResponse resp) {boolean picSuccess;// 注意一定要有这步否则图片显示不出来resp.setContentType(MediaType.IMAGE_JPEG_VALUE);long start System.currentTimeMillis();try {picSuccess pictureService.getOssPicture(path, resp);if (!picSuccess) {resp.setStatus(HttpServletResponse.SC_FORBIDDEN);}} catch (Exception e) {resp.setStatus(HttpServletResponse.SC_FORBIDDEN);log.error(下载图片失败);}log.info(cmd/getPicture,param{},cost:{}, path, System.currentTimeMillis() - start);} } public interface PictureService {boolean getOssPicture(String path, HttpServletResponse resp) throws IOException; } Slf4j Service public class PictureServiceImpl implements PictureService {Value(${alioss.ak})private String accessKeyId;// http://*********.aliyuncs.comValue(${url.prefix})private String urlPrefix;Value(${oss.connect.time:3000})private int ossConnectTime;Overridepublic boolean getOssPicture(String path, HttpServletResponse resp) throws IOException {String url getOssUrl(path);long st System.currentTimeMillis();Request requestDownload new Request.Builder().url(url).build();OkHttpClient client new OkHttpClient();client client.newBuilder().connectTimeout(ossConnectTime, TimeUnit.MILLISECONDS).build();Response responseDownload client.newCall(requestDownload).execute();if (responseDownload.isSuccessful() responseDownload.body() ! null responseDownload.body().byteStream() ! null) {InputStream is responseDownload.body().byteStream();writeImageFile(resp, is);} else {log.error(PictureServiceImpl-oss调用返回异常 url{}, data{}, url, responseDownload);return false;}long responseTime System.currentTimeMillis() - st;log.info(request-oss cost:{}, responseTime);return true;}// base64解码这块是与前端约定好的我这边要做的解码private String getOssUrl(String path) throws UnsupportedEncodingException {final Base64.Decoder decoder Base64.getDecoder();String decodePath new String(decoder.decode(path), UTF-8);StringBuffer buffer new StringBuffer();String[] split decodePath.split();for (int i 0; i split.length; i) {if (!split[i].startsWith(Version)) {buffer.append(split[i]).append();}}log.info(getOssUrl{}, urlPrefix buffer);buffer.append(OSSAccessKeyId).append(accessKeyId);return urlPrefix buffer;}/*** 将输入流输出到页面** param resp* param inputStream*/public void writeImageFile(HttpServletResponse resp, InputStream inputStream) {OutputStream out null;try {out resp.getOutputStream();int len 0;byte[] b new byte[1024];while ((len inputStream.read(b)) ! -1) {out.write(b, 0, len);}out.flush();} catch (IOException e) {e.printStackTrace();} finally {try {if (out ! null) {out.close();}} catch (Exception e) {e.printStackTrace();}}} } 三、总结 上面就是返回图片流的方式 记录下
http://www.zqtcl.cn/news/938256/

相关文章:

  • 1688网站链接图片怎么做wordpress 饭店主题
  • 人事怎么做招聘网站比对分析教育机构网站开发
  • 抚顺市+网站建设做网站用apache还是nginx
  • 群晖ds216j能否做网站百度收录官网
  • 白银市建设局网站网站设计规划的一般流程
  • 佛山网站建设企划动力新兴县城乡建设局网站
  • 软件开发 网页设计网站网页游戏链接大全
  • 网站建设犭金手指a15做校园网站 怎么备案
  • 淘客网站怎么做排名百度指数里的资讯指数是什么
  • 泰州网站开发网站建设个可行性研究
  • 网站ipv6改造怎么做 网页代码网页游戏在线玩链接
  • 做网站和优化学校asp网站
  • 佛山正规网站建设哪家好合肥专业网站优化价格
  • 华容网站免费ppt模板下载医学类
  • 网站注册申请艺术风格网站
  • 怎么上国外购物网站网站毕业作品代做
  • wordpress 描述字段seo排名技术教程
  • 重庆seo网站建设wordpress评论邮件插件
  • 企业网站模板下载网站模板下载做一个购物商城网站多少钱
  • 网站开发有哪些服务推荐电子商务网站建设
  • 网站交互技术网站框架类型
  • 国内网站建设公司top20对软件开发的理解和认识
  • 一键生成网站前端开发用什么语言
  • pc 网站建设苏州seo网站诊断
  • 江苏盐城建筑公司网站seo专员的工作内容
  • 做网站内容腾讯云wordpress教程
  • 如何建设 linux 网站旅游区网站开发
  • 云南网站设计哪家好wordpress 右边栏
  • 服务器网站部署端口配置网站,商城,app+建设
  • 如何做公司网站优化装修店铺