Java使用阿里雲OSS上傳圖片


添加依賴

<!--阿里雲存儲-->
		<dependency>
			<groupId>com.aliyun.oss</groupId>
			<artifactId>aliyun-sdk-oss</artifactId>
			<version>3.10.2</version>
		</dependency>
		<!-- 日期工具欄依賴 -->
		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
			<version>2.2</version>
		</dependency>

方式一

public String addAli(MultipartFile file){
        String endpoint = "oss-xxxxxxxxxxxxcs.com";
        String accessKeyId = "LTxxxxxxxxxxxvug";
        String accessKeySecret = "L9bxxxxxxxxxxxxxxxxxLnq";
        String backetName = "jxxxxxxxxxxxxmg";

        String uploadUrl = null;
        try {
            // 創建OSSClient實例
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
            InputStream inputStream = file.getInputStream();
            String filename = file.getOriginalFilename();
            // 在文件名稱中添加隨機的唯一的值,防止名稱一樣時文件的覆蓋
            String uuid = UUID.randomUUID().toString().replaceAll("-","");
            // 文件類型
            String fileType = filename.substring(filename.lastIndexOf("."));
            filename = uuid + fileType;

            // 把文件安裝日期進行分類,會自動創建文件夾
            String datePath = new DateTime().toString("yyyy/MM/dd");
            filename = datePath + "/" + filename;

            ossClient.putObject(backetName, filename, inputStream);

            // 關閉OSSClient
            ossClient.shutdown();

            // 上傳文件之后的路徑,自己拼接
            uploadUrl = "https://"+backetName+"."+endpoint+"/"+filename;

        } catch (IOException e) {
            e.printStackTrace();
        }
        return uploadUrl;
    }

方式二

public AjaxResult addAli(MultipartFile file){
        String endpoint = "http://cdn.xxxxxxx.com";
        String accessKeyId = "LTxxxxxxxxxxxxxxxxxxxgou";
        String accessKeySecret = "gxxxxxxxxxxx3QH";
        String bucketName = "mxxxxxxxxxxxxxxxxt";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String uploadUrl = null;
        try {
            if (file == null || file.getSize() <= 0){
                return AjaxResult.error("圖片不能為空");
            }

            // 獲取上傳文件的輸入流
            InputStream inputStream = file.getInputStream();
            // 獲取文件名稱
            String fileName = file.getOriginalFilename();
            // 獲取文件的后綴名
            String suffixName = fileName.substring(fileName.lastIndexOf("."));
            // 生成上傳文件名
            String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + suffixName;
            String objectName = sdf.format(new Date()) + "/" + finalFileName;

            OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
            ossClient.putObject(bucketName, objectName, inputStream);

            // 設置URL過期時間為6小時
            Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000 * 6);
            // 生成以GET方法訪問的簽名URL,可以直接通過瀏覽器訪問相關內容
            URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
            // 關閉OSSClient。
            ossClient.shutdown();
            uploadUrl = url.toString();
            System.out.println(uploadUrl);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return AjaxResult.success(uploadUrl);
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM