不废话了,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图片服务器使用,不要怀疑,可以用相关推荐

  1. **关于阿里云oss图片批量上传问题解析**

    关于阿里云oss图片批量上传问题解析 背景 最近在项目开发过程中遇到的问题,消耗了比较久的时间,过程曲折,虽然最终达到目的,但是鉴于各种常用的云数据在对象存储方面大同小异,所以记录一下. 理一下思路: ...

  2. 阿里云搭建图片服务器,图片资源服务器搭建

    背景 我第一次搭建图片服务器是在我的虚拟机服务器下,后来虚拟机崩溃了,就在阿里云买了一台轻量级服务器,然后安装了图片服务器.不过我当时并没有写一个文档进行记录,直到我后来再次需要一台图片服务器,于是我 ...

  3. 阿里云OSS 图片处理

    首先放个阿里云OSS图片处理接口文档 阿里云官方地址 oss图片处理接口文档 我们有时会抱怨用户上传的图文中图片文件大了(假如说3M的图片).导致生成的网页打开速度慢,怎么办呢? 问题分析:网页打开慢 ...

  4. 阿里云OSS 图片处理api(custom)

    首先放个阿里云OSS图片处理接口文档 阿里云官方地址 OSS 图片处理接口文档 我们有时会抱怨用户上传的图文中图片文件大了(假如说3M的图片).导致生成的网页打开速度慢,怎么办呢? 问题分析:网页打开 ...

  5. 小书匠绑定阿里云oss+阿里云oss图片url永久有效设置--菜鸟小回

    小书匠绑定阿里云oss+阿里云oss图片url永久有效设置 一.开通阿里云oss服务阿里云oss服务 二.创建Bucket 三.文件管理创建image/ 目录 四.进入小书匠绑定 访问入口:如图位置复 ...

  6. flutter阿里云OSS图片上传

    一.选择图片: 使用插件 image_picker: "^0.5.0+3" 使用image_picker选择图片,代码如下: // 相机拍照或者从图库选择图片pickImage(c ...

  7. 搭建属于自己的私有云Cloudreve+阿里云OSS+Windows服务器

    一.首先有一台Windows服务器 linux其实也差不多,只是我的是Windows服务器,购买.部署什么的,Windows都是傻瓜式的,不加以赘述 推荐使用 phpstudy V8 来搭建相关的环境 ...

  8. 阿里云OSS图片生成缩略图和获取视频的封面方法

    ?x-oss-process=image/resize,m_fill,w_200,quality,q_60 在图片的地址后面加上以上代码,可以生成缩略图 resize 调整大小 quality 清晰度 ...

  9. file does not exist 阿里云OSS图片上传遇到的问题

    ./uploads\20171209/0497b8dd16e72c6fcf5bfd552f535a81.png file does not exist 原代码 function aliyun($sav ...

最新文章

  1. python快速入门 pdf-十分钟快速入门python
  2. AndroidStudio中提示:android.content.res.Resources NotFoundException: String resource ID 0x
  3. c++常见并且必须记住的问题
  4. AcWing之重建二叉树
  5. HTML/CSS常用标签属性及样式
  6. Xopsed的编译与安装
  7. Python 定义源码编码 (Source Encoding)
  8. 二、【二维码扫描ZXing】
  9. PHP方法的重载主要格式,PHP函数重载方法及技巧
  10. easyui-textbox锁定按钮不锁定_EU5几乎锁定年度销量冠军,为何北汽新能源却高兴不起来?...
  11. 1000道Python题库系列分享三(30道)
  12. [样本分析] 海莲花CS样本
  13. Gameplay常用编写方法(持续更新)
  14. 手机间高速传输---微传
  15. Windows10家庭版怎么设置默认输入法
  16. Q - Phalanx
  17. Virtualbox虚拟Ubuntu系统扩展磁盘分区
  18. Checked exception及Unchecked exception对比
  19. 手机做了防抓包,如何抓包
  20. 线性代数笔记【空间曲面】

热门文章

  1. 交换机vlan配置实训心得_交换机与VLAN的配置实验报告
  2. php函数向上取整,php向上取整用什么函数
  3. 关于fprintf与缓冲区的一点发现
  4. android13中锁屏界面充电信息显示
  5. ubuntu调整鼠标灵敏度
  6. 名帖29 东汉 隶书《曹全碑》
  7. BZOJ_P2461 [BeiJing2011]符环(动态规划/记忆化搜索)
  8. Python初学习--你的历史我想知道一下
  9. 计算机美术比赛的画,绘画比赛
  10. 你不知道13个嵌入式C语言优化技巧