s3 7

[aws] com.amazonaws.services.s3.model.AmazonS3Exception:

🏕️상황 프런트 팀원이 해당 사진을 보내주면서 imageurl이 반환이 안 된다고 했다. (맥북에서 캡처를 하니 저렇게 이름이 길어졌다고 했다.) 평상시랑 다른 점(내가 테스트했을 때와 다른 점)이라고 한다면 파일의 이름이 지나치게 길다는 것이다. 그래서 aws 인스턴스에 실행중인 프로젝트의 로그를 확인해 보니 오류가 발생하고 있었다. com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: --이 부분은 혹시 몰라 삭제--; S3 Extended Request ID: --이 부분..

[spring boot] S3 게시판(이미지 처리) update 기능 완성

🏕️상황 꽤나 긴 시간 동안 굉장히 여러 상황을 마주해서 하나하나 기억은 안 나지만 그래도 기억나는 거라도 작성해보록 하겠음. public void updateImages(List newImageList, List existingImageList) { // 새로 추가된 이미지 찾기 List addedImages = new ArrayList(newImageList); addedImages.removeAll(existingImageList); // 삭제된 이미지 찾기 List deletedImages = new ArrayList(existingImageList); deletedImages.removeAll(newImageList); // 새 이미지 업로드 로직 for (String newImage : add..

[spring boot] S3 게시판(이미지 처리) delete 기능 완성

🏕️상황 처음에는 아래의 코드만 있으면 바로 삭제가 될 줄 알았다. public void deleteFile(String fileName) { DeleteObjectRequest request = new DeleteObjectRequest(bucket, fileName); amazonS3Client.deleteObject(request); } 그런데 나는 기존에 임시경로는 "temporary/"로 정식경로는 "final/"로 설정했기 때문에 이에 맞게 코드를 구성하려고 했다. 위의 코드는 루트 디렉터리 기준이고 나는 키(key) 구조를 활용해서 폴더 같은 형식으로 진행하고 싶었기 때문에 추가적인 코드 작업을 할 계획이었다. 하지만.... Amazon S3에서는 특정 폴더 내에 있는 파일을 삭제하기 위해 ..

[spring boot] aws 백엔드 배포하기(2. 서버에서 빌드)

🏕️상황 우리 프로젝트는 JAR 파일을 사용하여 Java 코드 빌드 방식을 활용했다. 현재 서버에 public ip가 없어서 스프링 코드를 scp 등의 명령어를 이용해 업로드할 수 있는 구조가 아니다 보니 NAT gateway를 설정했다. (NAT gateway가 있으면 private subnet에 있는 서버라고 하더라도 외부 인터넷에 outbound 요청은 가능) private subnet에 있지만 NAT gateway를 설정했기에 직접적인 inbound 요청은 모두 차단하는 상태이다. (대신 서버에서 outbound 요청은 가능하다.) 그래서 직접적으로 파일을 업로드하는 것은 안 되고, git clone, git pull은 가능한 형태이다. 🗝️해결 1. Session Manager로 인스턴스로 접근..

🚨ERROR - com.amazonaws.SdkClientException: Failed to connect to service endpoint:

🏕️상황 2023-07-25 10:31:09.949 WARN 156 --- [ main] com.amazonaws.util.EC2MetadataUtils : Unable to retrieve the requested metadata (/latest/meta-data/instance-id). Failed to connect to service endpoint: com.amazonaws.SdkClientException: Failed to connect to service endpoint: at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100) ~[aws-java-sdk-core-1.11.792.jar:n..

[개발] S3_accessKey, secretKey 발급받기기(문제/해결)

🏕️상황 S3에 이미지를 업로드하는 코드를 만들기 위해서 밑작업으로 application/properties에 accessKey, secretKey 값을 입력해야 하는데 그 값이 어디에 있는지 몰랐다. 그래서 검색해 보니 'aws access key 재발급'라고 검색해도 하나같이 새로운 유저를 생성하면서 그 과정 속에서 위의 값들을 얻는 구조였다. 하지만 우리 프로젝트 계정에는 이미 iam 유저가 1개 존재했다. aws 왕초보이다 보니 이것저것 막 건들이기가 무서웠고, 이미 유저가 1개 있는 상태에서 또 유저를 생성해도 되는지 고민이 되었다. 그래서 한이음 멘토님께 연락을 드려 여쭤보았다. ⛅과정 아래의 사진처럼 이 부분을 선택해서 iam 유저를 생성해야 하는데 이게 안 보이더라!! 이 페이지 (1페이지..