龙空技术网

springboot使用oss上传

JAVA互联搬砖工人 933

前言:

而今同学们对“ossjava”可能比较着重,朋友们都需要剖析一些“ossjava”的相关资讯。那么小编也在网络上网罗了一些关于“ossjava””的相关内容,希望各位老铁们能喜欢,小伙伴们一起来学习一下吧!

com.aliyun.oss aliyun-sdk-oss 3.5.0 commons-io commons-io 2.4 commons-fileupload commons-fileupload 1.3.3 application.properties:配置类

##basic setting

server.port = 8080

server.address =127.0.0.1

解除文件大小限制

spring.servlet.multipart.max-file-size=10MB

spring.servlet.multipart.max-request-size=10MB

OssManagerUtil.java:阿里OSS工具类

/**

阿里Oss对象存储工具类

*/

public class OssManagerUtil {private static String endpoint = “oss中获取的oss公网路径";

private static String accessKeyId = “自己在阿里云申请的accessKeyId";

private static String accessKeySecret = “自己在阿里云申请的accessKeySecret”;

private static String bucket = “bucket名称”;private static OSS client;static {

client = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

}/**上传图片@param fileName 图片名称,图片名称包括文件夹名称和“/”@param length 图片大小@param content 输入流

*/

public static String uploadImage(String fileName, long length, InputStream content) {

uploadBucketImage(bucket, fileName, length, content);

return “https://” + bucket + “.” + endpoint + “/” + fileName;

}/**上传文件@param bucket 存储空间名@param fileName 文件名(包括文件夹名称和“/”)@param length 流的长度@param content 输入流

*/

public static void uploadBucketImage(String bucket, String fileName, long length, InputStream content) {

// 创建上传Object的Metadata

ObjectMetadata meta = new ObjectMetadata();

// 必须设置ContentLength

meta.setContentLength(length);

// 上传Object.

client.putObject(bucket, fileName, content, meta);

}/**删除文件@param fileName 文件名称,图片名称包括文件夹名称和“/”

*/

public static boolean delShopImage(String fileName) {

//判断文件是否存在

boolean exist = client.doesObjectExist(bucket, fileName);

//文件不存在删除失败

if (!exist) {

return false;

}

//执行删除

client.deleteObject(bucket, fileName);

return true;

}/**获得上传文件后url链接@param fileName 文件名(包括文件夹名称和“/”)@return

/

public static String getUrl(String fileName) {

// 设置URL过期时间为10年 3600l 100024365*10

Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 365 * 10);

// 生成URL

URL url = client.generatePresignedUrl(bucket, fileName, expiration);

if (url != null) {

return url.toString();

}

return null;

}/**创建存储空间@param bucketName 新建存储空间默认为标准存储类型,私有权限。@return

*/

public static void crateBucket(String bucketName) {

// 新建存储空间默认为标准存储类型,私有权限。

client.createBucket(bucketName);

}

}

测试接口:文件上传

/**

文件上传到阿里oss

*/

@PostMapping("/uploadFiletoOss")

@ApiOperation(value = “文件上传到阿里oss”)

public ResponseResult uploadFiletoOss(@RequestParam(“file”)MultipartFile file)throws IOException{

String fileName = file.getOriginalFilename();

String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);

fileName = UUID.randomUUID().toString().replace("-", “”) + “.” + suffix;

String url = OssManagerUtil.uploadImage(fileName,file.getInputStream().available(),file.getInputStream());

return ResponseResult.success(url);

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:

原作者删帖 不实内容删帖 广告或垃圾文章投诉

标签: #ossjava