国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot 實現(xiàn)文件本地以及OSS上傳

這篇具有很好參考價值的文章主要介紹了Spring Boot 實現(xiàn)文件本地以及OSS上傳。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Spring Boot 實現(xiàn)文件上傳

Maven依賴

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

上傳到本地

package yang.controller;

import java.util.UUID;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@RestController
@RequestMapping("/upload")
public class UploadController {
    @PostMapping
    public void upload(@RequestPart MultipartFile file) throws IOException {
        // 獲取文件名
        String fileName = file.getOriginalFilename();
        // 獲取文件擴展名
        String extName = fileName.substring(fileName.lastIndexOf("."));
        // 獲取項目根目錄
        String root = System.getProperty("user.dir");
        // 獲取文件存放目錄
        String fileDir = "/src/main/java/yang/upload/";

        // 如果目標目錄不存在就創(chuàng)建
        File dir = new File(root + fileDir);
        if (!dir.exists()) {
            dir.mkdirs();
        }

        // 生成不重復(fù)的文件名稱
        String uuidName = UUID.randomUUID().toString() + extName;

        // 文件上傳的位置
        String uploadDir = root + fileDir + uuidName;

        // 上傳文件
        file.transferTo(new File(uploadDir));
    }
}

上傳到OSS

package yang.controller;

import java.util.UUID;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import yang.pojo.Result;

import java.io.InputStream;

@RestController
@RequestMapping("/upload")
public class UploadController {
    @PostMapping
    public Result upload(@RequestPart MultipartFile file) throws IOException {
        // Endpoint(地域節(jié)點)
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";

        // 秘鑰
        String accessKeyId = "LTAI5tNVbvdh8BGmnK3GNa4i";
        String accessKeySecret = "JXN5Mc3e40QlOxGBBUVJjAsw2TNCR2";

        // Bucket名稱
        String bucketName = "qweqweqweqweqw12312cds";

        // 文件名稱
        String fileName = file.getOriginalFilename();
        // 創(chuàng)建一個不重復(fù)的文件名稱
        String uuidName = UUID.randomUUID().toString() + fileName.substring(fileName.lastIndexOf("."));

        // 創(chuàng)建OSSClient實例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        try {
            // 文件輸入流
            InputStream inputStream = file.getInputStream();

            // 將文件上傳到OSS
            ossClient.putObject(bucketName, uuidName, inputStream);

            // 文件訪問路徑
            String url = endpoint.split("http://")[0] + "http://" + bucketName + "." + endpoint.split("http://")[1] + "/" + uuidName;

            return Result.success(url);
        } catch (OSSException oe) {
            System.out.println("捕獲了 OSSException, 這意味著您的請求已發(fā)送到 OSS, 但由于某種原因被拒絕并顯示錯誤響應(yīng)");
            return Result.error(oe.getMessage());
        } catch (ClientException ce) {
            System.out.println("捕獲 ClientException, 表示客戶端在嘗試與 OSS 通信時遇到, 嚴重的內(nèi)部問題, 例如無法訪問網(wǎng)絡(luò)。");
            return Result.error(ce.getMessage());
        } finally {
            if (ossClient != null) {
                // 最后記得關(guān)閉ossClient
                ossClient.shutdown();
            }
        }
    }
}

封裝工具類

上面的代碼我們可以定義一個工具類,這樣在任何需要文件上傳的地方只需要調(diào)用 upload 方法即可,大大減少了代碼量文章來源地址http://www.zghlxwxcb.cn/news/detail-837344.html

package yang.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

@Component
public class AliOSSUtils {
    private String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    private String accessKeyId = "LTAI5tNVbvdh8BGmnK3GNa4i";
    private String accessKeySecret = "JXN5Mc3e40QlOxGBBUVJjAsw2TNCR2";
    private String bucketName = "qweqweqweqweqw12312cds";

    public String upload(MultipartFile file) throws IOException {
        InputStream inputStream = file.getInputStream();

        String fileName = file.getOriginalFilename();
        String uuidName = UUID.randomUUID().toString() + fileName.substring(fileName.lastIndexOf("."));

        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        ossClient.putObject(bucketName, uuidName, inputStream);

        String url = endpoint.split("http://")[0] + "http://" + bucketName + "." + endpoint.split("http://")[1] + "/" + uuidName;

        ossClient.shutdown();

        return url;
    }
}

使用工具類

@PostMapping
public Result upload(@RequestPart MultipartFile file) throws IOException {
    AliOSSUtils oss = new AliOSSUtils();
    String url = oss.upload(file);

    return Result.success(url);
}

到了這里,關(guān)于Spring Boot 實現(xiàn)文件本地以及OSS上傳的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring Boot實現(xiàn)文件上傳和下載

    1.文件上傳 在pom.xml文件中添加依賴: spring-boot-starter-web 和 spring-boot-starter-thymeleaf 。 創(chuàng)建一個上傳前端的頁面,包括一個表單來選擇文件和一個提交按鈕。 在Controller中添加一個POST方法,該方法接受 MultipartFile 參數(shù),將文件保存在服務(wù)器上。 在application.properties文件中配置上

    2024年02月04日
    瀏覽(19)
  • Spring Boot實現(xiàn)文件上傳的兩種方式

    Spring Boot實現(xiàn)文件上傳的兩種方式

    最近的一個小項目里使用到了文件上傳、下載功能,今天我打算梳理一下文件上傳所涉及的技術(shù)及實現(xiàn)。 內(nèi)容主要包括兩部分,如何通過純 Servlet 的形式進行文件上傳、保存(不通過 Spring 框架);另一部分是如何在 Spring Web MVC 中進行文件上傳。 HTTP 協(xié)議傳輸文件一般都遵循

    2024年02月05日
    瀏覽(28)
  • Spring Boot + MinIO 實現(xiàn)文件切片極速上傳技術(shù)

    Spring Boot + MinIO 實現(xiàn)文件切片極速上傳技術(shù)

    ??歡迎來到SpringBoot框架學(xué)習(xí)專欄~ ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:SpringBoot ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實戰(zhàn)項目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限,如果文中出現(xiàn)錯誤,希望大家能指

    2024年02月04日
    瀏覽(22)
  • java上傳實現(xiàn) spring boot +element ui

    先從element ui el-upload組件開始介紹。 關(guān)于headers 在return里寫,這個即可獲得headers 目錄 1、得到文件上傳路徑,getUploadPath方法 2、FileUploadUtils里的upload方法,返回一個新的文件名 3、獲取url? 完整的FileUploadUtils? 再來看后臺controller 大致步驟分為以下: 1、得到文件上傳路徑,

    2024年02月12日
    瀏覽(26)
  • Java spring-boot項目中如何上傳下載文件或圖片到spring-boot規(guī)定的非靜態(tài)目錄

    spring-boot的項目,雖然它自己定義了一個靜態(tài)文件的存儲目錄,但是這個目錄一般是作為前端靜態(tài)文件的目錄來作為使用的。如果使用這個靜態(tài)目錄來作為我們上傳文件的目錄會有一個比較尷尬的地方:將spring-boot打包成為jar包后,隨著上傳圖片的增多,這個jar包也會跟著變大

    2024年02月16日
    瀏覽(19)
  • minio + linux + docker + spring boot實現(xiàn)文件上傳與下載

    minio + linux + docker + spring boot實現(xiàn)文件上傳與下載

    檢查linux內(nèi)核,必須是3.10以上 安裝docker 啟動docker 搜索鏡像 拉取鏡像 啟動minio -p: 指定端口映射,格式為:主機端口:容器端口 (這里注意要映射兩個,否則API會訪問不到) -e “MINIO_ROOT_USER=vinci” minio用戶名; -e MINIO_SECRET_KEY=123456 minio 密碼 -d: 后臺運行容器,并返回容器ID; -

    2024年02月07日
    瀏覽(27)
  • spring boot文件上傳

    文件上傳,是指將本地圖片、視頻、音頻等文件上傳到服務(wù)器,供其他用戶瀏覽或下載的過程。 文件上傳在項目中應(yīng)用非常廣泛,我們經(jīng)常發(fā)微博、發(fā)微信朋友圈都用到了文件上傳功能。 前端代碼: 后端代碼: 對于阿里云的oss的使用可閱讀對象存儲 OSS官方文檔 導(dǎo)入依賴

    2024年02月08日
    瀏覽(25)
  • Spring Cloud Feign MultipartFile文件上傳踩坑之路(包含前端文件上傳請求、后端文件保存到aliyun-oss文件服務(wù)器)

    Spring Cloud Feign MultipartFile文件上傳踩坑之路(包含前端文件上傳請求、后端文件保存到aliyun-oss文件服務(wù)器)

    文件上傳組件用的是ant-design的a-upload組件,我的界面如下所示: 文件上傳請求API: FileUtils.js 需要注意的只有FileUtils.js定義的uploadApi請求函數(shù),其中 URL 為后端請求接口(“/imageConvert/upload”),文件上傳方法必須定義為 POST ,在 headers 加入’Content-type’: ‘multipart/form-data’,后端

    2024年02月12日
    瀏覽(20)
  • Spring Boot中實現(xiàn)文件上傳

    要在Spring Boot中實現(xiàn)文件上傳,可以按照以下步驟進行操作: 添加依賴:在Maven或Gradle配置文件中添加Spring Boot Web相關(guān)的依賴。 創(chuàng)建文件上傳接口:創(chuàng)建一個控制器(Controller)類,定義文件上傳的接口。例如: java復(fù)制代碼 import org.springframework.web.bind.annotation.PostMapping; impor

    2024年02月12日
    瀏覽(20)
  • Spring Boot 設(shè)置上傳文件大小限制

    在開發(fā) Web 應(yīng)用程序時,我們通常需要處理文件上傳功能。為了確保系統(tǒng)的安全性和穩(wěn)定性,我們需要限制上傳文件的大小。本篇博客將介紹如何使用 Spring Boot 設(shè)置上傳文件大小限制。 1. application.properties 配置文件 Spring Boot 提供了一種簡單的方式來配置上傳文件大小限制。首

    2024年02月04日
    瀏覽(246)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包