需要注意,要配置扫描, 然后使用不要new出来,用@Autowired去注入进去…

  1. application-aliyun.properties

oss配置

aliyun.oss.endpoint=http://oss-cn-shanghai.aliyuncs.com
aliyun.oss.accessKeyId=#######
aliyun.oss.accessKeySecret=######
aliyun.oss.bucketName=######

  1. OssClientConfig
    @PropertySource(value = “classpath:application-aliyun.properties”)
    @Configuration
    public class OssClientConfig {
@Value("${aliyun.oss.endpoint}")
private String endpoint;

@Value("${aliyun.oss.accessKeyId}")
private String accessKeyId;

@Value("${aliyun.oss.accessKeySecret}")
private String accessKeySecret;

@Bean
public OSSClient ossClient() {
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
return ossClient;
}

}

  1. OssClientUtils
    @Component
    @PropertySource(value = “classpath:application-aliyun.properties”)
    public class OssClientUtils {
@Value("${aliyun.oss.bucketName}")
private String bucketName;

@Autowired
private OSSClient ossClient;

/**
* oss 存储,使用默认的随机生成的文件名称 作为 objectName
*
* @param file 文件
* @return
*/
public String uploadFile(MultipartFile file) throws Exception {
String originalFilename = file.getOriginalFilename();
String ext = originalFilename.substring(originalFilename.lastIndexOf("."));
String newFileName = UUID.randomUUID().toString().substring(0, 10) + ext;
return this.uploadFile(newFileName, file);
}

/**
* oss 存储
*
* @param objectName 上传文件名称
* @param file 文件
* @return
*/
public String uploadFile(String objectName, MultipartFile file) throws Exception {
objectName = this.genFilePath() + objectName;
ossClient.putObject(bucketName, objectName, file.getInputStream());
return this.getUrl(objectName);
}

/**
* oss 存储
*
* @param objectName 上传文件名称
* @param file 文件
* @return
*/
public String uploadFile(String objectName, File file) {
objectName = this.genFilePath() + objectName;
ossClient.putObject(bucketName, objectName, file);
return this.getUrl(objectName);
}

/**
* 根据文件名,获取文件地址
*
* @param objectName 文件名称,基于 bucketName
* @return
*/
private String getUrl(String objectName) {
// 设置URL过期时间为10年
Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 365 * 10);
// 生成URL
URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
if (url != null) {
return url.toString();
}
return null;
}

/**
* 每天生成一个文件名称
*
* @return
*/
private String genFilePath() {
return DateUtils.parseDateToStr("yyyyMMdd", new Date()) + "/";
}

}