저는 Alibaba 중문 사이트를 사용하였습니다!!
우선 Object Stoage Service페이지로 이동해서 Bucket을 생성해줍니다.

스샷을 못했는데 설정하는 칸에서는
Encryption Method 영역에서 OSS-Managed로 변경하는게 전부였습니다. (OSS에서 기본적으로 AES256암호화를 적용한다고 합니다.
Spring
*의존성 추가
implementation 'com.aliyun.oss:aliyun-sdk-oss:3.17.4'
*설정 코드
@Configuration
public class OssConfig {
@Value("${oss.endpoint}") String endpoint;
@Value("${oss.accessKeyId}") String keyId;
@Value("${oss.accessKeySecret}") String keySecret;
@Bean(destroyMethod = "shutdown")
public OSS ossClient() {
return new com.aliyun.oss.OSSClientBuilder().build(endpoint, keyId, keySecret);
}
}
*서비스 코드
public String upload(String keyPrefix, MultipartFile file) {
try (InputStream in = file.getInputStream()) {
// 업로드될 키(버킷 내부 경로) 생성
String safeName = java.util.Objects.requireNonNullElse(file.getOriginalFilename(), "file");
safeName = safeName.replaceAll("[\\r\\n]", "");
String key = String.format("%s/%s_%s",
keyPrefix, java.util.UUID.randomUUID(), safeName); // 예: uploads/uuid_name.png
// 메타데이터(길이/타입 지정 권장)
com.aliyun.oss.model.ObjectMetadata meta = new com.aliyun.oss.model.ObjectMetadata();
meta.setContentLength(file.getSize());
if (file.getContentType() != null) meta.setContentType(file.getContentType());
meta.setHeader("x-oss-server-side-encryption", "AES256");
oss.putObject(bucket, key, in, meta);
return key;
} catch (IOException e) {
throw new RuntimeException("Failed to upload to OSS", e);
}
}
Upload메소드를 통해서 자유롭게 업로드가 가능합니다.

bucket-name은 자기가 설정한 이름 그대로 입력하면 되고
endPoint는 overview들어가면 나와있어요

밑에 이렇게 3개가 나와있는데
- Access Over Internet은 로컬 개발 PC, Git 등 외부에서 접근할 때 사용
- Access from ECS over the VPC는 같은 VPC안에 있을 때 내부망을 이용해서 통신
- Acess from ECS over the classic Network는 래거시 환경에서만 사용가능하다고 하는데 요즘은 잘 안쓴다고 합니다.
추가로 몇 가지 서비스 코드를 더 보여드리고 마치겠습니다
1. 다운로드 URL을 받는 코드입니다. minutes변수를 통해서 시간을 조절할 수 있습니다.
public URL presignedGetUrl(String key, int minutes) {
java.util.Date exp = new java.util.Date(System.currentTimeMillis() + minutes * 60_000L);
com.aliyun.oss.model.GeneratePresignedUrlRequest req =
new com.aliyun.oss.model.GeneratePresignedUrlRequest(bucket, key, com.aliyun.oss.HttpMethod.GET);
req.setExpiration(exp);
return oss.generatePresignedUrl(req);
}
2. bucket에 실제로 파일이 있는지 확인하기 위한 메소드 입니다.
public boolean isFileExist(FileAttachment file) {
boolean result = oss.doesObjectExist(bucket, file.getPath());
log.info("object isExist:{}",result);
return result;
}
3. 파일을 가져오기 위한 메소드 입니다.
public OSSObject getObject(FileAttachment file){
log.info("getting object...");
return oss.getObject(bucket, file.getPath());
}'🏫 인프라' 카테고리의 다른 글
| [Alibaba] 알리바바 서버 악몽의 시작,,, (0) | 2025.10.19 |
|---|---|
| [알림] 프로젝트 카테고리 주요내용 (0) | 2025.04.05 |