阿里雲oss上傳———通過MultipartFile,springmvc模式

    @PostMapping({"/upload/file"})
    @ResponseBody
    public Result aliUpload(HttpServletRequest httpServletRequest, @RequestParam("file") MultipartFile file) throws URISyntaxException, FileNotFoundException {
        String fileName = file.getOriginalFilename();
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        //生成文件名稱通用方法
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
        Random r = new Random();
        StringBuilder tempName = new StringBuilder();
        tempName.append(sdf.format(new Date())).append(r.nextInt(100)).append(suffixName);
        String newFileName = tempName.toString();

        FileOssUtil.uploadFile(newFileName,file);

        Result resultSuccess = ResultGenerator.genSuccessResult();
        resultSuccess.setData("https://yuanmajiazu.oss-cn-hangzhou.aliyuncs.com/" + newFileName);
        return resultSuccess;
    }
package ltd.newbee.mall.controller.common;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectRequest;
import org.springframework.web.multipart.MultipartFile;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class FileOssUtil {

    // 阿里雲API的內或外網域名
    private static String endpoint="https://oss-cn-hangzhou.aliyuncs.com";
    
    // 阿里雲API的密鑰Access Key ID
    private static String accessKeyId="LTAI4Fm6MSmZc9FL2FdhNLP2";
    
    // 阿里雲API的密鑰Access Key Secret
    private static String accessKeySecret="YE0fugIih7dnPqAwjiXs9tERa12jhD";
    
    // 阿里雲API的bucket名稱
    private static String bucketName="yuanmajiazu";
    
    // 賦值
//    public static void settingIniOSS(String endpoint, String accessKeyId, String accessKeySecret,String bucketName) {
//        FileBlobUtil.endpoint = endpoint;
//        FileBlobUtil.accessKeyId = accessKeyId;
//        FileBlobUtil.accessKeySecret = accessKeySecret;
//        FileBlobUtil.bucketName = bucketName;
//    }
    
    public static void uploadFile(String objectKey, MultipartFile multipartFile)
                throws OSSException, ClientException, FileNotFoundException {
    
        // 創建OSSClient的實例
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        try {
            if(multipartFile.getSize() != 0 && !"".equals(multipartFile.getName())){
                // getInputStream()返回一個InputStream以從中讀取文件的內容。通過此方法就可以獲取到流
                InputStream multipartFileInputStream = multipartFile.getInputStream();
                PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectKey, multipartFileInputStream);
                ossClient.putObject(putObjectRequest);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            // 關閉流
            ossClient.shutdown();
        }
    }
}

 

 

 

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.10.2</version>
</dependency>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章