Skip to content

Commit 05afc43

Browse files
authored
Merge pull request #96 from Project-BookLog/fix/web/1
s3 업로드 오류 수정
2 parents 9d67901 + 2d42bf1 commit 05afc43

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed

booklog/src/main/java/com/example/booklog/aws/s3/AmazonS3Manager.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import com.amazonaws.services.s3.model.ObjectMetadata;
66
import com.amazonaws.services.s3.model.PutObjectRequest;
77
import com.example.booklog.global.common.Uuid;
8+
import com.example.booklog.global.common.apiPayload.code.status.ErrorStatus;
9+
import com.example.booklog.global.common.apiPayload.exception.GeneralException;
810
import com.example.booklog.global.common.repository.UuidRepository;
911
import com.example.booklog.global.config.AmazonConfig;
1012
import lombok.RequiredArgsConstructor;
@@ -28,15 +30,23 @@ public class AmazonS3Manager {
2830
private final UuidRepository uuidRepository;
2931

3032
public String uploadFile(String keyName, MultipartFile file){
33+
String bucket = amazonConfig.getBucket();
34+
log.info("[S3] upload start bucket='{}' key='{}' size={} contentType={}",
35+
bucket, keyName, file.getSize(), file.getContentType());
36+
3137
ObjectMetadata metadata = new ObjectMetadata();
3238
metadata.setContentLength(file.getSize());
39+
3340
try {
34-
amazonS3.putObject(new PutObjectRequest(amazonConfig.getBucket(), keyName, file.getInputStream(), metadata));
35-
} catch (IOException e){
36-
log.error("error at AmazonS3Manager uploadFile : {}", (Object) e.getStackTrace());
41+
amazonS3.putObject(new PutObjectRequest(bucket, keyName, file.getInputStream(), metadata));
42+
} catch (Exception e) {
43+
log.error("[S3] putObject failed bucket='{}' key='{}'", bucket, keyName, e);
44+
throw new GeneralException(ErrorStatus.FILE_UPLOAD_FAILED);
3745
}
3846

39-
return amazonS3.getUrl(amazonConfig.getBucket(), keyName).toString();
47+
String url = amazonS3.getUrl(bucket, keyName).toString();
48+
log.info("[S3] upload success url='{}'", url);
49+
return url;
4050
}
4151

4252
public String generateReviewKeyName(Uuid uuid) {

booklog/src/main/java/com/example/booklog/domain/users/service/MeAvatarService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.example.booklog.global.common.apiPayload.exception.GeneralException;
1010
import com.example.booklog.global.common.repository.UuidRepository;
1111
import lombok.RequiredArgsConstructor;
12-
import org.springframework.context.annotation.Profile;
1312
import org.springframework.stereotype.Service;
1413
import org.springframework.transaction.annotation.Transactional;
1514
import org.springframework.web.multipart.MultipartFile;
@@ -20,7 +19,6 @@
2019
@Service
2120
@RequiredArgsConstructor
2221
@Transactional
23-
@Profile("!local")
2422
public class MeAvatarService {
2523

2624
private final UsersRepository usersRepository;

booklog/src/main/java/com/example/booklog/global/common/apiPayload/code/status/ErrorStatus.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public enum ErrorStatus implements BaseErrorCode {
2222
FILE_REQUIRED(HttpStatus.BAD_REQUEST, "F001", "파일이 필요합니다."),
2323
FILE_TOO_LARGE(HttpStatus.PAYLOAD_TOO_LARGE, "F002", "파일 용량이 너무 큽니다."),
2424
UNSUPPORTED_IMAGE_TYPE(HttpStatus.UNSUPPORTED_MEDIA_TYPE, "F003", "지원하는 파일 양식이 아닙니다."),
25+
FILE_UPLOAD_FAILED(HttpStatus.EXPECTATION_FAILED, "F004", "파일업로드에 실패했습니다."),
2526

2627
// =========================
2728
// [Author / Enrichment / Search]

booklog/src/main/java/com/example/booklog/global/config/AmazonConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class AmazonConfig {
3030
@Value("${cloud.aws.region.static}")
3131
private String region;
3232

33-
@Value(("${cloud.aws.s3.bucket"))
33+
@Value("${cloud.aws.s3.bucket}")
3434
private String bucket;
3535

3636
@Value("${cloud.aws.s3.path.review}")

0 commit comments

Comments
 (0)