luodangjia
2024-12-10 ee7ce5d1cbf80bee0a15c1e5bc5eaa30858d812b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.hollywood.manage.component;
 
 
import com.hollywood.common.basic.ApiResult;
import com.obs.services.ObsClient;
import com.obs.services.model.ObjectMetadata;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
 
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;
 
 
/**
 * @author feiyunchuan
 */
@Slf4j
@Api(tags = "Ali-OSS文件上传接口")
@RestController
@RequestMapping("/ali-oss/")
public class AliOssFileUploadController {
 
    @Value("${file.cdn:https://nncdn.pharmacylinked.com}")
    private String FILE_CDN;
 
    //OBS图片访问域名
    public static String endPoint = "obs.cn-north-4.myhuaweicloud.com";
    public static String accessKeyId = "SMMYY6PBKSOAO4WJ5DWM";
    public static String accessKeySecret = "mHAFbQ78lIFgcIzjrHqSGioe9vVonEqgvZBWCAwX";
    public static String bucketName = "duanshiping";
    public static String oss_domain = "https://duanshiping.obs.cn-north-4.myhuaweicloud.com/";
    public static ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, endPoint);
 
    @ApiOperation(value = "服务端上传", notes = "服务端上传")
    @PostMapping(value = "upload")
    public ApiResult<String> fileUpload(@RequestParam(value = "file") MultipartFile file) throws IOException {
        String fileName = "";
        if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
            InputStream content = file.getInputStream();//获得指定文件的输入流
            ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
            meta.setContentLength(file.getSize());  // 必须设置ContentLength
            String originalFilename = file.getOriginalFilename();
            fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
            obsClient.putObject(bucketName,"admin/"+fileName,content,meta);// 上传Object.
            if(!"".equals(fileName)){
                System.out.println(fileName);
                fileName = oss_domain+"admin/"+fileName;
            }
        }
        return ApiResult.okmsg(fileName);
    }
}