1.接口方法

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import com.alibaba.fastjson.JSONObject;
import com.voyage.client.util.ApiResponse;
import com.voyage.client.util.OSSUtil;
import com.voyage.client.util.StringUtil; @RestController
@RequestMapping("/resource")
public class BasicController { /*
* 图片上传
*/
@PostMapping("/imgUpload")
public ApiResponse imgUpload(HttpServletRequest request, @RequestParam("file") MultipartFile file) { String url = "";
if (file != null) { String fileName = file.getOriginalFilename();//获取上传原图片名称
String newFileName = StringUtil.guid() + fileName.substring(fileName.lastIndexOf("."));//生成保存在服务器的图片名称,延用原后缀名
try {
OSSUtil.upload(newFileName, file.getInputStream());
url = newFileName;
} catch (IOException e) { e.printStackTrace();
}
}
JSONObject r = new JSONObject();
r.put("url", OSSUtil.getUrl(url, ""));
//r.put("snapshotUrl", OSSUtil.getUrl(url, "?x-oss-process=image/resize,m_fixed,h_200,w_200"));
return new ApiResponse(r); } }

2.oss图片上传工具类

import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectResult; import java.io.IOException;
import java.io.InputStream;
import java.net.URL; public class OSSUtil { private static String endpoint = "oss-cn-shenzhen.aliyuncs.com"; private static String accessKeyId = "LT*******3"; private static String accessKeySecret = "U**************Y4A"; private static String bucketName = "bucketName"; private static OSSClient ossClientStatic; static {
ossClientStatic = new OSSClient(endpoint, accessKeyId, accessKeySecret);
} /**
* 上传到OSS服务器 如果同名文件会覆盖服务器上的
*
* @param fileName 文件名称 包括后缀名
* @param instream 文件流
* @return 出错返回"" ,唯一MD5数字签名
*/
public static String upload(String fileName, InputStream instream) {
String resultStr = "";
try { // 创建上传Object的Metadata
ObjectMetadata objectMetadata = new ObjectMetadata();
// objectMetadata.setContentLength(instream.available());
// objectMetadata.setCacheControl("no-cache");
// objectMetadata.setHeader("Pragma", "no-cache");
// objectMetadata.setContentType(getContentType(fileName.substring(fileName.lastIndexOf("."))));
// objectMetadata.setContentDisposition("inline;filename=" + fileName); // 上传文件 (上传文件流的形式)
PutObjectResult putResult = ossClientStatic.putObject(bucketName, fileName, instream, objectMetadata);
// 解析结果
resultStr = putResult.getETag();
} catch (Exception e) {
e.printStackTrace(); } finally {
try {
if (instream != null) {
instream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return resultStr; } /**
* 上传图片
*
* @param url
*/
public static void uploadUrl(String fileName, String url) { try {
InputStream instream = new URL(url).openStream();
upload(fileName, instream);
} catch (Exception e) {
e.printStackTrace(); } finally { }
} /**
* 获得url链接
*
* @param key
* @return
*/
public static String getUrl(String key, String option) {
if (StringUtil.isBlank(key))
return "";
return "http://" + bucketName + "." + endpoint + "/" + key + option; } public static String getBaseUrl() { return "http://" + bucketName + "." + endpoint + "/";
}
}

 3.maven需要引入的阿里云oss服务器jar包

    <dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.4.0</version>
</dependency>

Java中使用RestFul接口上传图片到阿里云OSS服务器的更多相关文章

  1. Java下载https文件上传到阿里云oss服务器

    Java下载https文件上传到阿里云oss服务器 今天做了一个从Https链接中下载音频并且上传到OSS服务器,记录一下希望大家也少走弯路. 一共两个类: 1 .实现自己的证书信任管理器类 /** ...

  2. 上传图片到阿里云OSS和获取上传图片的外网url的步骤

    啥都不说  直接上代码 1.html: <form action="/bcis/api/headImgUpload.json" method="post" ...

  3. TP框架上传图片至阿里云oss

    首先安装阿里云oss扩展: composer require aliyuncs/oss-sdk-php 如果这个安装不上可以直接下载SDK的包: 链接:https://pan.baidu.com/s/ ...

  4. vue中上传图片至阿里云oss

    1.开通阿里云的oss服务这些这里就不多做介绍了 2.登入阿里云的后台管理系统创建一个Bucket 3.在后台管理系统中进入访问控制 4.点击用户管理->新建用户->填写相关信息,就生成了 ...

  5. swift3.0 从相册选取或者拍照上传图片至阿里云OSS

    导入相应的库 import Photos import AliyunOSSiOS 选取照片需要继承 UIImagePickerControllerDelegate,UINavigationContro ...

  6. 上传图片到阿里云oss

    阿里云地址 登录阿里云管理控制台,创建对象存储oss private static final String endpoint = "http://oss-cn-shanghai.aliyu ...

  7. 阿里云OSS服务器的使用

    关于文件上传,我们一般使用OSS服务器.大致为两种上传方式: 详情官网参考:https://help.aliyun.com/document_detail/31927.html?spm=a2c4g.1 ...

  8. swoft 上传图片到 阿里云oss aliyun-oss

    1.swoft  获取上传的文件 .官方文档上面没有看到 $files = $request->getUploadedFiles(); $file = $files['file']; 2.在模型 ...

  9. 构建基于阿里云OSS文件上传服务

    转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50710132 <构建基于阿里云OSS文件上传服务> <构建基于OS ...

随机推荐

  1. ueditor 常用配置

    scaleEnabled:是否可以拉伸长高,默认true(当开启时,自动长高失效) autoHeightEnabled:是否自动长高,默认true catchRemoteImageEnable:设置远 ...

  2. android_layout_relativelayout(一)

    android的相对布局relativelayout也是一个值得研究的部分.先归纳下最近的几个心得. 相对布局中,xml文件第一个控件总是在屏幕的左上角为它的位置,别管你手机是竖着的还是横着的. 从第 ...

  3. 20131214-HTML基础-第二十一天

    [1]表单练习 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  4. MDX查询SSAS结果--通过adomd.net展示到客户端

    SSAS多维模型建好之后,除了在excel客户端直接链接ssas源拖拽pivot分析使用外,还可以讲要展示的结果集通过MDX语句查询出来,嵌入到程序中,通过运行程序跑出完整的报表.如图所示:

  5. Spring Bean 的装配方式

    Spring Bean 的装配方式 装配 Bean 的三种方式 一个程序中,许多功能模块都是由多个为了实现相同业务而相互协作的组件构成的.而代码之间的相互联系又势必会带来耦合.耦合是个具有两面性的概念 ...

  6. 洛谷 P1635 跳跃

    题目: 题目背景 NOIP即将迎来周年华诞.在这一个春秋的历程里,NOIP领导全国oier,建设高效.稳定.快捷.开放的社会主义现代化OI.在新的一年里,YZOJ将再接再厉,积极探寻成长之路,更好地为 ...

  7. 个人永久性免费-Excel催化剂功能第80波-按条件查找数字,扩展原生查找功能

    Excel的查找替换功能,只能对文本类数据查找较为得力,若需查找数字类型的数据,如查找大于100的数字,就无能为力,此篇Excel催化剂补足其短板. Excel数据类型知识背景介绍 用好Excel,必 ...

  8. 个人永久性免费-Excel催化剂功能第21波-Excel与Sqlserver零门槛交互-执行SQL语句篇

    在前两波中,已完成了Excel与Sqlserver的查询和上传功能,但难免许多临时的或更深入地操作数据库需要用Sql语句来操作,对一般用户电脑里,不可能有条件轻易安装一个数据库客户端软件,就算安装了对 ...

  9. PTA 打印沙漏

    https://pintia.cn/problem-sets/17/problems/260 #include <bits/stdc++.h> using namespace std; i ...

  10. cve-2018-14515复现

    一.环境 Windows NT WIN-RRI9T9SN85D 6.1 build 7600 (Windows 7 Business Edition) i586 Apache/2.4.23 (Win3 ...