七牛服务器获取文件内容
项目需求中涉及到从七牛服务器上获取文件内容,并在邮件附件中展示以及能够支持预览和下载。
七牛服务器与大多数服务器相同,相信小伙伴们通过搜索引擎,都能了解到,大部分服务器获取文件内容的代码都是根据URL,获取资源内容的。
七牛当然也不例外。
故而,如果能拿到服务器上资源的URL,代码就能相对简单。如:
fileURL就是通过各种辗转获取到服务器上的资源路径;
ByteArrayOutputStream baos = URLUtils.readBaosByUrlPath(fileURL);MailService.MailAttachment attachment = new MailService.MailAttachment(fileName + suffix, baos);
this.sendEmail(to, subject, params, "e-comrise-postinfo", attachment);
public static class MailAttachment {private String file_name;private ByteArrayOutputStream byteArrayOutputStream;public MailAttachment(String file_name, ByteArrayOutputStream byteArrayOutputStream) {this.file_name = file_name;this.byteArrayOutputStream = byteArrayOutputStream;}public String getFile_name() {return file_name;}public ByteArrayResource getResource() {return new ByteArrayResource(byteArrayOutputStream.toByteArray());}public void closeResource() {try {byteArrayOutputStream.close();} catch (IOException ex) {ex.printStackTrace();}}}
那么,就有小伙伴好奇我这个工具类是怎么实现的了?废话不多说,直接上代码;
public static ByteArrayOutputStream readBaosByUrlPath(String urlPath) throws IOException {if (!isLegalUrl(urlPath)) return null;ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();try(InputStream inputStream =new URL(urlPath).openStream()){IOUtils.copy(inputStream, byteArrayOutputStream);}return byteArrayOutputStream;}
public static Boolean isLegalUrl(String url) {Pattern pattern = Pattern.compile("[a-zA-z]+://[^\\s]*");
// Pattern p = Pattern.compile("^(http|www|ftp|)?(://)?(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*((:\\d+)?)(/(\\w+(-\\w+)*))*(\\.?(\\w)*)(\\?)?(((\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*(\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*)*(\\w*)*)$",Pattern.CASE_INSENSITIVE );Matcher matcher = pattern.matcher(url);if (matcher.find()) {return isConnection(url);} else {return false;}}
引入的各种包:
import org.apache.commons.io.IOUtils;
import java.net.URL;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
如果有小伙伴想要深度了解这部分内容的话,请留言。知无不言言无不尽。前提:力所能及之下。
最后,祝愿开发路上的小伙伴们,永不脱发!
七牛服务器获取文件内容相关推荐
- python连接ftp服务器获取文件内容_python 访问ftp服务器文件
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...
当前位置:我的异常网» Java Web开发 » 前台:Input type="file" 后台获取文件内 前台:Input type="file" 后台获取文 ...
- tp框架文件上传七牛服务器,TP5开发 - 七牛云图片上传方法
1.config.php配置文件里配置七牛云密钥等 里面 secretKey accessKey domain bucket对应换成自己七牛云申请的, 步骤: (1)七牛云注册成功后-对象存储申请10 ...
- python批量上传文件到服务器_Python脚本06 —— 批量上传图片到七牛服务器
#coding=utf-8 #上传到正式七牛服务器 import sys,os from qiniu import Auth from qiniu import BucketManager impor ...
- 七牛服务器入门教程_教程:使用无服务器,StepFunction和StackStorm构建社区的入门应用程序…...
七牛服务器入门教程 by Dmitri Zimine 由Dmitri Zimine 使用无服务器,StepFunction和StackStorm Exchange构建社区注册应用 (Building ...
- php put怎么接收文件,php,restful_PHP PUT方式传文件的话,如何获取文件内容呢 ?,php,restful,http - phpStudy...
PHP PUT方式传文件的话,如何获取文件内容呢 ? 最近因为在做前后端分离,后端PHP所有Api都使用RESTFul风格. 但是在使用PUT上传文件的时候,发现$_FILES没有文件信息(可能没有上 ...
- php获取文件详细,PHP 获取文件内容
验证function的时候发现在使用局域网网关的时候,页面响应时间过长,究其原因是从服务器读取文件失败导致.使用的是file_get_contents(),后来换了curl之后,问题便解决了. PHP ...
- php使用七牛直播,七牛上传文件,PHP版本
自从知道七牛以来,就一直在用七牛做图片外链,但是每次需要到七牛官网登录,然后再上传图片.感觉很麻烦,最近想做一个自己的上传到七牛的平台,开始的想法是用C#写一个windows客户端,在用swift写一 ...
- php中files和FILRS,php获取文件内容最后一行示例
php获取文件内容最后一行示例 复制代码 代码如下: $rs = 'README.md'; $fp = fopen($rs, 'r'); fseek($fp,-1,SEEK_END); $s = '' ...
- ios 从服务器获取文件,ios - 如何将远程文件(从远程SMB服务器获取)提供给某些请求 - 堆栈内存溢出...
当某些请求命中服务器(在移动应用程序上运行的服务器)时,我正在尝试将视频文件作为响应提供. 该视频文件可以存储在本地,也可以是外部存储的. 我开始尝试提供位于SMB服务器上的文件,所以我尝试使用此代码 ...
最新文章
- 2022-2028年中国汽车橡胶密封件行业市场深度分析及发展趋势分析报告
- springmvc 拦截器、国际化、验证
- java 泛型多重限制_Java泛型:有界类型参数中的多重继承
- 再见,备份——你好,真正的数据保护
- RAID技术超详细讲解
- Linux文件的三种时间属性
- 动态规划之0-1背包问题
- 2020 及以后的八大最显著技术趋势!
- css网页设计qq彩贝
- 利用计算机对调查问卷进行,关于电脑需求调查问卷
- Android Jetpack系列--8. DataStore使用详解
- ps中怎么把人物的腿给p长
- vb中的print方法
- 转:饭后九不要包你保健康
- 莫纳什计算机硕士课程挂科率,莫纳什真的是挂科重灾区?
- OpenSSL 使用openssl工具搭建私有CA
- NOI2016 优秀的拆分(图解)
- JAVA 求出100以内所有奇数,并对100以内所有奇数求和
- 编程思维训练4:地铁导航
- opencv学习(六)之掩膜版
热门文章
- 深度学习图片数量较少扩充数据集的方法
- 终于搞清楚了:SOLID设计原则出处
- 如果你想学数据科学,这 7 类资源千万不能错过...
- Apache Kafka-auto.offset.reset参数(earliest、latest、none)含义说明
- 土味情话恋爱话术微信小程序源码下载
- iOS学习之路-简单汤姆猫
- 【2022-New】Flutter doctor 检测报错,Android toolchain - develop for Android devices
- 在光伏并网柜保护监测领域安科瑞给出的解决方案
- MAL II,怀槐凝集素II(MAL II)
- CentOS 7搭建Yunzai-Bot原神机器人