阿里云官网地址
进入管理控制台
创建Bucket
进入AccessKey,创建AccessKey
也可以参考文档
阿里云参考文档
org.springframework.boot
spring-boot-starter-parent
2.1.8.RELEASE
org.springframework.boot
spring-boot-starter-web
com.aliyun.oss
aliyun-sdk-oss
3.10.2
org.projectlombok
lombok
org.apache.commons
commons-lang3
3.7
joda-time
joda-time
2.9.9
org.springframework.boot
spring-boot-starter-test
test
aliyun.properties配置文件
endpoint
accessKeyId,accessKeySecret
bucketName
urlPrefix
@Configuration
@PropertySource("classpath:aliyun.properties")
@Data
public class AliyunConfig {
@Value("${endpoint}")
private String endpoint;
@Value("${accessKeyId}")
private String accessKeyId;
@Value("${accessKeySecret}")
private String accessKeySecret;
@Value("${bucketName}")
private String bucketName;
@Value("${urlPrefix}")
private String urlPrefix;
@Bean
public OSS oss(){
// return new OSSClient(endpoint,accessKeyId,accessKeySecret); //被抛弃的,仍可以使用
return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
}
}
UploadService.class 数据存储
@Service
public class UploadService {
// @Autowired
// private OSSClient ossClient;
@Autowired
private OSS oss;
@Autowired
private AliyunConfig aliyunConfig;
public String upload(MultipartFile file) throws IOException {
//文件路径
String path=getFilepath(file.getOriginalFilename());
PutObjectResult putObjectResult = oss.putObject(aliyunConfig.getBucketName(), path, new ByteArrayInputStream(file.getBytes()));
System.out.println(putObjectResult);
return aliyunConfig.getUrlPrefix()+path;
}
private String getFilepath(String sourceFileName){
DateTime dateTime = new DateTime();
return "images/"+dateTime.toString("yyyy")+"/"+
dateTime.toString("MM")+"/"+dateTime.toString("dd")+"/"+
System.currentTimeMillis()+ RandomUtils.nextInt(100,9999)+"."+
StringUtils.substringAfter(sourceFileName,".");
}
}
AliTest controller层
@RestController
@ResponseBody
public class AliTest {
@Autowired
private UploadService uploadService;
@GetMapping("/upload")
public String upload(MultipartFile file) throws IOException {
String upload = uploadService.upload(file);
return upload;
}
}
测试
采用postman进行测试
访问地址是aliyun.properties中的urlPrefix加上文件路径



