阿里云OSS图片服务器使用,不要怀疑,可以用
不废话了,oss是什么这些去姑够或度娘查;
我一springboot项目为例,
配置oss服务器
首先配置图片服务器的配置信息
图中oss为oss服务器的配置信息,tmpFilePath是本地存放临时图的地址
图片数据转码
为了安全图片肯定是要结果转码的,至于什么转码方式就根据业务需要了。
我们这里的图片经过URL传递过来,且使用了URL与base64双重编码,所以这里需要用URLDecoder解码后才可用。如果你有现成的图片可以省略这一步操作
String fileName = imagebase64Utils.GenerateImage(ImageStr, UserId);String fileUrl = ossUtil.uploadFile(fileName);
如果你的图片已经有了 可忽略这一步操作
imagebase64Utils
import org.apache.commons.io.IOUtils;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.*;
import java.util.Date;@Component
public class Imagebase64Utils {@Value("${aliyun.tmpFilePath}")private String tmpFilePath ;public String GenerateImage(String imgData,Long UserId) { // 对字节数组字符串进行Base64解码并生成图片//找了一个sun公司包下的Date date = new Date();String fileName = tmpFilePath+UserId+date.toString().split(" ")+".png";//byte[] decode = Base64Utils.decode(base64);方法一公司的包String tempstr = null;try {tempstr = java.net.URLDecoder.decode(imgData, "UTF-8");BASE64Decoder decoder = new BASE64Decoder();//sun的byte[] bytes = decoder.decodeBuffer(tempstr);IOUtils.write(bytes, new FileOutputStream(fileName));} catch (Exception e) {e.printStackTrace();}return fileName;}
}
图中的
@Value("${aliyun.tmpFilePath}")
private String tmpFilePath ;
是从yml配置文件中读取配置信息数据的,需要加上@Component注解
oss连接使用
OssUtil
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.io.*;
import java.net.URL;
import java.util.Date;/*** 阿里云OSS服务器工具类*/
@Component
public class OssUtil {protected static final Logger log = LoggerFactory.getLogger(OssUtil.class);@Value("${aliyun.oss.endpoint}")private String endpoint;@Value("${aliyun.oss.accessKeyId}")private String accessKeyId;@Value("${aliyun.oss.accessKeySecret}")private String accessKeySecret;@Value("${aliyun.oss.bucketName}")private String bucketName;@Value("${aliyun.tmpFilePath}")private String tmpFilePath ;Imagebase64Utils imagebase64Utils = new Imagebase64Utils();/*** 文件上传* @param fileName* @return 返回完整URL地址*/public String uploadFile(String fileName) {OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 创建PutObjectRequest对象。// 填写Bucket名称、Object完整路径和本地文件的完整路径。Object完整路径中不能包含Bucket名称。// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。File file = new File(fileName);PutObjectRequest putObjectRequest = new PutObjectRequest("xroad", file.getName(), file);// 上传文件。PutObjectResult res =ossClient.putObject(putObjectRequest);// 生成URLURL url = ossClient.generatePresignedUrl(bucketName, file.getName(), new Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 360));// 关闭OSSClient。ossClient.shutdown();System.gc();file.delete();return url.toString();}
}
如此一顿操作后,若你的oss服务器配置成功,图片就一局上传好了,最后的url即是你oss图片的地址,可以存储在数据库,也可直接在页面展示
vue中如此操作
<template slot-scope="scope"><img :src="scope.row.faceImg" width="40" height="40" /></template>
看其中的img标签就好了
这里的faceImg就是对于url.toString的值
代码中有使用的system.gc对进程进行处理,处理以后图片才处于未使用状态,才能执行图片删除操作。这里是不完美的。希望有大神指点。
阿里云OSS图片服务器使用,不要怀疑,可以用相关推荐
- **关于阿里云oss图片批量上传问题解析**
关于阿里云oss图片批量上传问题解析 背景 最近在项目开发过程中遇到的问题,消耗了比较久的时间,过程曲折,虽然最终达到目的,但是鉴于各种常用的云数据在对象存储方面大同小异,所以记录一下. 理一下思路: ...
- 阿里云搭建图片服务器,图片资源服务器搭建
背景 我第一次搭建图片服务器是在我的虚拟机服务器下,后来虚拟机崩溃了,就在阿里云买了一台轻量级服务器,然后安装了图片服务器.不过我当时并没有写一个文档进行记录,直到我后来再次需要一台图片服务器,于是我 ...
- 阿里云OSS 图片处理
首先放个阿里云OSS图片处理接口文档 阿里云官方地址 oss图片处理接口文档 我们有时会抱怨用户上传的图文中图片文件大了(假如说3M的图片).导致生成的网页打开速度慢,怎么办呢? 问题分析:网页打开慢 ...
- 阿里云OSS 图片处理api(custom)
首先放个阿里云OSS图片处理接口文档 阿里云官方地址 OSS 图片处理接口文档 我们有时会抱怨用户上传的图文中图片文件大了(假如说3M的图片).导致生成的网页打开速度慢,怎么办呢? 问题分析:网页打开 ...
- 小书匠绑定阿里云oss+阿里云oss图片url永久有效设置--菜鸟小回
小书匠绑定阿里云oss+阿里云oss图片url永久有效设置 一.开通阿里云oss服务阿里云oss服务 二.创建Bucket 三.文件管理创建image/ 目录 四.进入小书匠绑定 访问入口:如图位置复 ...
- flutter阿里云OSS图片上传
一.选择图片: 使用插件 image_picker: "^0.5.0+3" 使用image_picker选择图片,代码如下: // 相机拍照或者从图库选择图片pickImage(c ...
- 搭建属于自己的私有云Cloudreve+阿里云OSS+Windows服务器
一.首先有一台Windows服务器 linux其实也差不多,只是我的是Windows服务器,购买.部署什么的,Windows都是傻瓜式的,不加以赘述 推荐使用 phpstudy V8 来搭建相关的环境 ...
- 阿里云OSS图片生成缩略图和获取视频的封面方法
?x-oss-process=image/resize,m_fill,w_200,quality,q_60 在图片的地址后面加上以上代码,可以生成缩略图 resize 调整大小 quality 清晰度 ...
- file does not exist 阿里云OSS图片上传遇到的问题
./uploads\20171209/0497b8dd16e72c6fcf5bfd552f535a81.png file does not exist 原代码 function aliyun($sav ...
最新文章
- python快速入门 pdf-十分钟快速入门python
- AndroidStudio中提示:android.content.res.Resources NotFoundException: String resource ID 0x
- c++常见并且必须记住的问题
- AcWing之重建二叉树
- HTML/CSS常用标签属性及样式
- Xopsed的编译与安装
- Python 定义源码编码 (Source Encoding)
- 二、【二维码扫描ZXing】
- PHP方法的重载主要格式,PHP函数重载方法及技巧
- easyui-textbox锁定按钮不锁定_EU5几乎锁定年度销量冠军,为何北汽新能源却高兴不起来?...
- 1000道Python题库系列分享三(30道)
- [样本分析] 海莲花CS样本
- Gameplay常用编写方法(持续更新)
- 手机间高速传输---微传
- Windows10家庭版怎么设置默认输入法
- Q - Phalanx
- Virtualbox虚拟Ubuntu系统扩展磁盘分区
- Checked exception及Unchecked exception对比
- 手机做了防抓包,如何抓包
- 线性代数笔记【空间曲面】