com.aliyun.oss
aliyun-sdk-oss
2.8.2
controller层
只是练习所以实现代码直接写在了controller里
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.PutObjectRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.UUID;
@Controller
public class OssController {
public static String ENDPOINT = "";
public static String ACCESSKEYID = "";
public static String ACCESSKEYSECRET = "";
public static String BUCKETNAME = "";
public static String PATH = "/";
@RequestMapping(value = "/upload")
public String myphotoupload(MultipartFile file , Model model) {
try {
// 创建OSS实例
OSSClient ossClient = new OSSClient(ENDPOINT, ACCESSKEYID, ACCESSKEYSECRET);
// 获取上传的文件的输入流
InputStream inputStream = file.getInputStream();
// 获取文件名称
String fileName = file.getOriginalFilename();
// 在文件名称里面添加随机唯一值,使用UUID生成 把uuid生成里的-去掉
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
fileName = uuid + fileName;
// 拼接fileName PATH是oss文件夹
fileName = PATH + fileName;
//ossClient.putObject(BUCKETNAME, fileName, inputStream); 用这种方式putObject上传,拼接的url是下载!!!
//ossClient.shutdown();
PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKETNAME, fileName, inputStream);
ossClient.putObject(putObjectRequest);
// 关闭ossClient
ossClient.shutdown();
// 把上传到oss的路径返回
// 需要将路径手动拼接出来,https://xxxxxx.oss-cn-shanghai.aliyuncs.com/edu/avatar/girl.jpg
String url = "https://"+ BUCKETNAME + "." + ENDPOINT + "/" + fileName;
System.out.println(url);
model.addAttribute("url", url);
return "demo";//demo.html
} catch (Exception e) {
e.printStackTrace();
model.addAttribute("url","");
return "demo";
}
}
}
页面
上传页面
回显


