第一步配置阿里上面的访问相关密钥
使用yml文件进行
aliyun:
oss:
endpoint: oss-cn-beijing.aliyuncs.com
bucketName: 捅名称
accessKeyId: 自己的keyid
accessKeySecret: 自己的keySecret
然后写个类配置这些参数
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
/**
* 阿里云平台-对象存储OSS服务配置类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
@RefreshScope
public class AliyunOSSConfig {
/**
* 访问地址
*/
private String endpoint;
/**
* bucket名称
*/
private String bucketName;
/**
* 访问ID
*/
private String accessKeyId;
/**
* 访问密钥
*/
private String accessKeySecret;
}
然后就是在实现类里面进行使用(文件名称,类型都已处理好)
public String uploadFile(MultipartFile file) {
// 填写Bucket名称
String bucketName = aliyunOSSConfig.getBucketName();
// 以天为单位的名称,作为文件夹名称
String newFolderName = DateUtil.format(new Date(), "yyyy-MM-dd");
// 以时间戳作为文件的新名称
String newFileName = DateUtil.format(new Date(), "HHmmssSSS");
// 获取原文件的后缀名称
String originalFilename = file.getOriginalFilename();
String fileSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));
// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
String objectName = newFolderName+"/"+newFileName+fileSuffix;
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(aliyunOSSConfig.getEndpoint(), aliyunOSSConfig.getAccessKeyId(), aliyunOSSConfig.getAccessKeySecret());
URL url = null;
try {
// 创建PutObjectRequest对象。
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, file.getInputStream());
// 上传
ossClient.putObject(putObjectRequest);
// 创建上传文件访问的url地址
url = ossClient.generatePresignedUrl(bucketName, objectName, DateUtil.offsetDay(new Date(), 365 * 10));
} catch (Exception ce) {
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return url.toString();
}