将阿⾥oss存储照⽚转换成Base64编码⼀ : 背景
由于⽹络不通,⽆法通过url直接获取阿⾥oss存储照⽚,所以转换成Base64编码 供前端使⽤
⼆ : Java 代码
@ApiOperation("获取base64")
@GetMapping(value = "/getBaseFile")
public JSONData getBaseFile(@RequestParam String file) throws Exception{
// 指定过期时间为⼀年。
Date expiration = new Date(new Date().getTime() + 1000 * 60 * 658800 * 2);
// 设置图⽚处理样式。
String style = "image/resize,m_fixed,w_100,h_100/rotate,90";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, file, HttpMethod.GET);
req.setExpiration(expiration);
req.setProcess(style);url编码处理
URL signedUrl = atePresignedUrl(req);
//Map<String, String> customHeaders = new HashMap<String, String>();
// 添加GetObject请求头。
//customHeaders.put("Range", "bytes=100-1000");
// OSSObject object = Object(signedUrl, customHeaders);
//hztc-oss.oss-cn-hz-hty-d01-a.wtops-procloud/hztc-oss/hiuhiu.jpg
// 1,导包
// 2,得到HttpClient对象
System.out.String());
HttpClient client = new DefaultHttpClient();
//3,设置请求⽅式
HttpGet get = new String());
//4,执⾏请求, 获取响应信息
HttpResponse response = ute(get);
Map<String,String> map = new HashMap<>();
StatusLine().getStatusCode() == 200)
{
//得到实体
HttpEntity entity = Entity();
byte[] data = ByteArray(entity);
BASE64Encoder encoder = new BASE64Encoder();
//返回Base64编码过的字节数组字符串
String encode = de(data);
map.put("encode",encode);
map.put("file",String());
JSONData jsonData = new JSONData();
jsonData.setData(map);
return jsonData;
} else {
return null;
}
// InputStream in = null;
// byte[] data = null;
// //读取图⽚字节数组
// try{
// //in = new FileInputStream(new URI()));
// in = new FileInputStream(new File()));
// data = new byte[in.available()];
// in.read(data);
// in.close();
// }catch (IOException e){
/
/ e.printStackTrace();
// }
// //对字节数组Base64编码
// BASE64Encoder encoder = new BASE64Encoder();
// //返回Base64编码过的字节数组字符串
// String encode = de(data);
// return new JSONData(encode);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论