SpringBoot 통합 아 리 클 라 우 드 OSS 대상 저장 서비스 구현 파일 업로드

1.준비 작업:
1.먼저 로그 인 합 니 다아 리 클 라 우 드 OSS 대상 저장 콘 솔Bucket 을 저장 공간 으로 만 듭 니 다.
2.Access Keyan 을 만 드 는 것 은 요구 에 따라 진행 합 니 다.이곳 의 방법 과 절 차 는 제 가 보 여주 지 않 겠 습 니 다.당신들 은 알 리 클 라 우 드 문 서 를 스스로 조회 할 수 있 습 니 다.이 획득 치 자체 가 어렵 지 않 습 니 다.
포인트:AccessKey ID,AccessKey Secret,그리고 방금 만 든 Buacket 이름 BucketName 을 기록 하 세 요.
2.설정:
pom 에 oss 가 사용 할 의존 도 를 도입 합 니 다.

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.10.2</version>
</dependency>
응용 프로그램.yml 에 프로필 추가

#       
server:
  port: 8080

aliyun:
  oss:
    #yourEndpoint  Bucket       Endpoint,      Bucket     。
    endpoint: oss-cn-chengdu.aliyuncs.com		#      ,Endpoint   https://oss-cn-chengdu.aliyuncs.com
    #     AccessKey    API     ,    。          RAM    API       ,   RAM     RAM  
    accessKeyId: **********				#      AccessKey     AccessKey ID
    accessKeySecret: **********				#      AccessKey     AccessKey Secret
    bucketName: **********				# OSS       
3.상세 코드:
첫 번 째 단계:서비스 패 키 지 를 만 들 고 AliyunOss Service.java 를 새로 만 듭 니 다.

import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;

@Service
public interface AliyunOssService {
    Map<String, Object> upload(MultipartFile file, String fileName);
}
두 번 째 단계:service 패키지 에 impl 패 키 지 를 만 들 고 AliyunOss ServiceImpl.자바 를 새로 만 듭 니 다.

import com.system.demo.service.AliyunOssService;
import com.system.demo.util.FileUploadUtil;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;

@Service("aliyunOssService")
public class AliyunOssServiceImpl implements AliyunOssService {

    @Resource
    private FileUploadUtil fileUploadUtil;

    @Override
    public Map<String, Object> upload(MultipartFile file, String fileName){
        //      (                    )
        String path = "a";   //          a   
        //  ,               
        fileName = path + "/" +fileName;
        Map<String, Object> map =new HashMap<>();
        map.put("code", 200);
        map.put("msg", "    ");
        map.put("data", this.fileUploadUtil.upload(file, fileName));
        return map;
    }

}
세 번 째 단계:util 패 키 지 를 만 들 고 FileUploadUtil.java 를 새로 만 듭 니 다.

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.ObjectMetadata;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;

@Component
public class FileUploadUtil {

    @Value("${aliyun.oss.endpoint}")
    private String endpoint;

    @Value("${aliyun.oss.accessKeyId}")
    private String accessKeyId;

    @Value("${aliyun.oss.accessKeySecret}")
    private String accessKeySecret;

    @Value("${aliyun.oss.bucketName}")
    private String bucketName;

    public String upload(MultipartFile file, String fileName){
            //     
            try {
                //        
                InputStream inputStream = file.getInputStream();

                //              
                ObjectMetadata meta = new ObjectMetadata();
                meta.setContentType("image/jpg");

                //   OSSClient  
                OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

                /*
                  oss          oss----Bucket    
                      bucket  
                          
                         
                          
                 */
                ossClient.putObject(bucketName, fileName, inputStream, meta);

                //     。       ,  ObjectName           。       ,           object           。
                //ossClient.deleteObject(bucketName, "a/");

                //   OSSClient。
                ossClient.shutdown();

                //           
                String url = "https://" + bucketName + "." + endpoint + "/"+ fileName;
                return url;
            } catch (IOException e) {
                e.printStackTrace();
            }
        return null;
    }
}
네 번 째 단계:인 터 페 이 스 를 정의 하여 controller 패 키 지 를 만 들 고 FileUpload.java 를 새로 만 듭 니 다.

import com.system.demo.service.impl.AliyunOssServiceImpl;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.Map;

@RestController
@RequestMapping("oss")
public class FileUpload {

    @Resource
    private AliyunOssServiceImpl aliyunOssServiceImpl;

    @RequestMapping(value = "fileoss", method = RequestMethod.POST)
    public Map<String, Object> uploadOssFile(MultipartFile file, String fileName){
        return this.aliyunOssServiceImpl.upload(file, fileName);

    }
}
4.테스트:
먼저 시작 클래스 를 실행 하고 Postman 에서 테스트 합 니 다.
요청 방식 선택:POST
요청 경로:localhost:8080/os/fileoss
Body-->form-data 선택
-첫 번 째 열 데이터:KEY 는 file 이 고 형식 을 File 로 선택 하고 VALUE 를 업로드 하고 자 하 는 파일 에 추가 합 니 다.
-두 번 째 열 데이터:KEY 는 fileName 이 고,형식 은 Text 이 며,VALUE 파일 이름 을 추가 합 니 다
다음 그림:

추가 가 완료 되면 send 를 누 르 고 요청 을 하 며 데 이 터 를 되 돌려 주 기 를 기다 리 고 있 습 니 다.되 돌아 오 는 JSON 형식의 data 에 대응 하 는 주 소 는 이 파일 의 미리 보기 주소 입 니 다.
또한,당신 은 당신 의 OSS 에서 당신 의 파일 을 볼 수 있 습 니 다.
이상 은 SpringBoot 통합 아 리 클 라 우 드 OSS 대상 저장 실현 파일 업로드 에 대한 상세 한 내용 입 니 다.SpringBoot 통합 아 리 클 라 우 드 OSS 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 해 주 십시오!

좋은 웹페이지 즐겨찾기