设为首页 加入收藏

TOP

springboot阿里云oss工具类(一)
2023-07-25 21:33:44 】 浏览:110
Tags:springboot oss

pom依赖;

yml配置:

读取配置文件类:

完整工具类代码:
`
import cn.hutool.core.lang.UUID;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;
import com.luzhizheng.common.config.OSSConfig;
import lombok.SneakyThrows;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.PostConstruct;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLDecoder;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**

  • @author Sappy
  • @date 4/6/2023 10:40:44
    */

@Component
public class AliYunOSSUtil {
private static Logger logger = LoggerFactory.getLogger(AliYunOSSUtil.class);
public static AliYunOSSUtil aliYunOSSUtil;

@PostConstruct
public void init() {
    aliYunOSSUtil = this;
    aliYunOSSUtil.ossConfig = this.ossConfig;
}

@Autowired
private OSSConfig ossConfig;

/**
 * 上传byte数组
 *
 * @param objectName 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
 * @param bytes      Byte数组。
 * @return
 */
public static String uploadByte(String objectName, byte[] bytes) {
    // 创建OSSClient实例。
    OSS ossClient = new OSSClientBuilder().build(aliYunOSSUtil.ossConfig.getEndpoint()
            , aliYunOSSUtil.ossConfig.getAccessKeyId()
            , aliYunOSSUtil.ossConfig.getAccessKeySecret());
    String url = "";
    try {
        // 创建PutObjectRequest对象。
        PutObjectRequest putObjectRequest = new PutObjectRequest(aliYunOSSUtil.ossConfig.getBucket()
                , objectName, new ByteArrayInputStream(bytes));
        // 设置该属性可以返回response。如果不设置,则返回的response为空。

// putObjectRequest.setProcess("true");
// 创建PutObject请求。
PutObjectResult result = ossClient.putObject(putObjectRequest);
// 如果上传成功,则返回200。
// System.out.println(result.getResponse().getStatusCode());
url = "https://"
+ aliYunOSSUtil.ossConfig.getBucket()
+ "."
+ aliYunOSSUtil.ossConfig.getEndpoint()
+ "/"
+ objectName;
} catch (OSSException oe) {
logger.error("请求已发送到OSS,但由于某种原因被拒绝并出现错误响应");
logger.error("Error Message:[{}]", oe.getErrorMessage());
logger.error("Error Code:[{}]", oe.getErrorCode());
logger.error("Request ID:[{}]", oe.getRequestId());
logger.error("Host ID:[{}]", oe.getHostId());
} catch (ClientException ce) {
logger.error("客户端在尝试与OSS通信时遇到问题");
logger.error("Error Message:[{}]", ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return url;

}


/**
 * 上传网络流
 *
 * @param objectName 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
 * @param url        网络流地址
 * @return
 */
public static String uploadUrl(String objectName, String url) {
    // 创建OSSClient实例。
    OSS ossClient = new OSSClientBuilder().build(aliYunOSSUtil.ossConfig.getEndpoint()
            , aliYunOSSUtil.ossConfig.getAccessKeyId()
            , aliYunOSSUtil.ossConfig.getAccessKeySecret());

    String fileUrl = "";
    try {
        InputStream inputStream = new URL(ur
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇java基础篇——流程控制 下一篇JSP利用AJAX实现页面即时校验验证..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目