@Transactional
public void updateUserInfo(String email, MyPageRequest myPageRequest) {
Optional<User> userOptional = userRepository.findByEmail(email);
User user = userOptional.orElseThrow(() -> new RuntimeException("아이디 없음"));
String newNickname = myPageRequest.getNickname();
String nowProfileImage = user.getProfileImage();
if(myPageRequest.getProfileImage()!=null) {
String newProfileImageUrl = s3ImageService.upload(myPageRequest.getProfileImage());
if (nowProfileImage != null && !nowProfileImage.isEmpty()) {
s3ImageService.deleteImageFromS3(nowProfileImage);
}
nowProfileImage = newProfileImageUrl;
}
user.updateUserInfo(newNickname,nowProfileImage);
userRepository.save(user);
}
public void deleteImageFromS3(String imageAddress){
String key = getKeyFromImageAddress(imageAddress);
try{
amazonS3.deleteObject(new DeleteObjectRequest(bucketName, key));
}catch (Exception e){
throw new IllegalArgumentException("파일 삭제에 실패했습니다.", e);
}
}
기존 코드는 이러하다.
null이 아니라면 기존 이미지를 삭제하고 업데이트를 할 필요가 있어서 추가했다.
그런데 권한 오류가 떠서 수정이 되지 않는다.
테스트 계정으로 테스트를 해보면
프론트에서는 업데이트가 됐다고 나오지만 실질적으로 이미지는 그대로다.
User: arn:aws:iam:[iam계정] is not authorized to perform: s3:DeleteObject on resource: "arn:aws:s3:::[파일저장주소]" with an explicit deny in an identity-based policy (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: [요청ID]; S3 Extended Request ID: [요청ID]; Proxy: null)
찾아보니 이전에 깃에 aws키를 올렸던 적이 있다. 그 당시엔 private 였어서 크게 문제될게 없었는데 public으로 바꾸면서 문제가 됐다. gitignore을 사용해서 감췄지만 커밋한 히스토리가 남아있어 계속 문제가 됐다.
우선 자고 일어나서 aws에 문의후 격리정책을 삭제해도 좋은지 확인해봐야겠다.
새로운 access키를 발급받았고 기존 키는 삭제했다. (그렇다고 안전한건 아니라고 한다 - aws 공식입장)
깃 커밋 히스토리는 git 명령어로 지워보려 했으나 특정 레포에서 삭제가 되지 않고 있어서 일시적으로 그 레포만 private으로 변경했다.
수정!
https://soonrang.tistory.com/96
[aws/오류] 배포 후 403 에러 수정
원래는 아래 이미지를 전혀 가져오지 못했다. token을 헤더에서 가져오지 못하는 문제가 있었는데 CustomSecurityConfig cros 설정에서 수정해준 후 오류가 해결되었다. 아래 한줄을 추가해주었고 to
soonrang.tistory.com
'인턴일기(티디아이)' 카테고리의 다른 글
[우또] 프로젝트 개선 / 비로그인 손님 받기 (0) | 2025.04.03 |
---|---|
데이터 관리를 효율적으로 하는 방법 고민중 (0) | 2024.09.26 |
[사이드프로젝트] 배포이야기 -s3 포스트맨 테스트 (0) | 2024.08.05 |
[사이드] swagger 적용 삽질 기록 (1) | 2024.07.25 |
파이썬 크롤링으로 리스트업하기 (0) | 2024.07.05 |