原文链接:oss上传图片 – 编程屋
在公司中,上传图片和视屏可以说是很常见的操作了。通常会将图片和视屏保存到阿里云上进行存储。所以需要阿里云的4个参数(站点、acess_key_id、acess_key_secret、bucket_name)。
//上传的固定值
//站点
private static final String END_POINT = "http://oss-cn-hangzhou.aliyuncs.com";
//获取acess_key_id
private static final String ACCESS_KEY_ID = "xxxxxx";
//获取acess_key_secret
private static final String ACCESS_KEY_SECRET = "xxxxxxx";
//获取bucket_name
private static final String YOUR_BUCKET_NAME = "XXXX";
public ResultUtil<String> uploadImage(@RequestParam("fileName") MultipartFile file,@RequestParam("type") Integer type) {
if (!SomeUtil.isNoEmpty(file)) {
throw new RuntimeException("请上传文件");
}
String url = "";
if (type == 0 ) {
url = UploadFile.uploadOSSFile(file, "cmsh/img/",type);
}else if (type == 1 ) {
url = UploadFile.uploadOSSFile(file, "cmsh/video/",type);
}
return ResultUtil.success(url);
}
public static String uploadOSSFile(MultipartFile file, String dir,Integer type) {
// 图片访问地址
String httpUrl = "";
if (SomeUtil.isNoEmpty(file)) {
try {
String endpoint = END_POINT;
String yourBucketName = YOUR_BUCKET_NAME;
// 图片名称
String youKeyName = dir + DateUtil.date2String(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.getRandomNumber(4) + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
// 图片访问地址
httpUrl = endpoint.substring(0, 7) + yourBucketName + "." + endpoint.substring(7) + "/" + youKeyName;
// 创建OSSClient实例
OSSClient ossClient = new OSSClient(endpoint, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
if (type == 0 ) {
// meta设置请求头(防止打开图片链接直接下载)
ObjectMetadata meta = new ObjectMetadata();
meta.setContentType("image/jpg");
ossClient.putObject(yourBucketName, youKeyName, file.getInputStream(),meta);
}else {
ossClient.putObject(yourBucketName, youKeyName, file.getInputStream());
}
// 关闭client
ossClient.shutdown();
log.info("上传图片成功:" + httpUrl);
} catch (MaxUploadSizeExceededException e) {
throw new RuntimeException("上传文件应小于200MB");
} catch (IOException e) {
log.error(e.getMessage());
throw new RuntimeException("上传异常");
} catch (Exception e) {
log.error(e.getMessage());
throw new RuntimeException("上传失败");
}
}
return httpUrl;
}
如此选择图片上传或视频上传就能够上传到阿里云对应文件夹中。(bucketName/cmsh/img/)
以上只是部分内容,为了维护方便,本文已迁移到新地址:oss上传图片 – 编程屋