4 글 보임 - 1 에서 4 까지 (총 4 중에서)
-
글쓴이글
-
2023년 8월 30일 20:31 #96417
정중식참가자1. 게시글을 작성하고 이미지를 넣었습니다. 2. 게시글 수정을 하고싶습니다. 3. 게시글 제목과 내용, 사진을 불러왔습니다. (editPost) 4. 게시글 제목과 내용은 그대로두고 기존의 사진을 지운다던가 5. 기존의 사진을 두고 새로운 사진을 추가한다던가 6. 기존의 사진이 두장있으면 한장만 지우고 새로운 사진을 추가한다던가.. 이런거를 구현하려고하는데 정말 도무지 머리를 싸매도 모르겠습니다. aws s3 버켓안에있는 이미지 삭제는 구현할수있겠는데... 5,6번은 어떻게 구현해야하나요? 5번 구현중 막히는 부분은.. 지금 저는 서버에 aws s3에 이미지가올라가면 그 이미지의 파일이름만 서버쪽에 저장해서 aws s3 주소/버켓주소/${서버에저장된 이미지 이름명} 이런식으로 이미지를 불러오고있는데요, 서버는 이미지를 프론트쪽에서 받을때 file객체만을 받을수있는것 같습니다. 그래서 기존 이미지와 새로운 이미지를 추가해서 서버쪽에 보내면 새로운 이미지만 받게되는상황입니다. (기존 이미지는 string이고 새로 추가된 이미지는 object(File)임) 6번 구현중 막히는 부분은.. 이미지를 올리면 aws s3에 바로 올라가는게아니라, 수정완료 버튼을누르면 이미지가 aws s3에 올라가던지 ,삭제되던지 수정되던지하는데요, 근데 이러면 6번처럼 기존이미지중 하나만 지우고 새로운 이미지를 추가하는경우는 어떤식으로 구현해야하나요?... 그냥 심플하게 현재 게시글의 이미지를 한번 싹 다 지워주는 코드를 작성하고, ( 서버쪽 코드를 작성해서 aws s3에 있는 이미지를 삭제한다는 뜻..) 다시 처음부터 기존의 이미지 + 새로운이미지를 aws s3에 올려주는 코드를 작성하면 어떨까 싶어서 시도해봤는데 잘 안되는거같은데요(제가 잘못하고있는걸수도있음) 이 방법이 맞나요?
2023년 8월 31일 09:41 #96438
codingapple키 마스터수정페이지 방문시 기존 파일 url들 어딘가에 기록해두고 서버로 파일보낼 때 기존 파일 url과 다른 파일 url 가진 파일만 서버로 보내면 5번 6번 해결될수도요
2023년 8월 31일 11:51 #96464
정중식참가자쌤.. 머리가 너무 아파요..
이런식으로 서버쪽에서 일단 수정페이지 들어오면 aws s3에 있는 이미지 url을 imageUrls에 담아주고있어요 *현재 image: post.image은 파일이름만 들어가있음 예를들면 1.jpg * imageUrls에는 aws s3 파일의 객체이름 예를들면 awss3버켓들어가있는주소+파일이름
const post = await Post.findById(req.params.id);
let newPost = { _id: post._id, user: post.user, title: post.title, contents: post.contents, image: post.image, date: post.date, __v: post.__v, };
if (!post) { return res.status(404).json({ message: '게시글을 찾을 수 없습니다.' }); }
// post.image가 있을 경우에만 처리 if (post.image && post.image.length > 0) { const s3 = new AWS.S3(); const imageUrls = [];
// post.image에 저장된 각 파일명에 대해 S3 파일 URL 생성 post.image.forEach((imageFileName) => { const imageUrl = s3.getSignedUrl('getObject', { Bucket: 'plant-newjeans/gallery', // S3 버킷 이름 Key: imageFileName, // 파일명 });
imageUrls.push(imageUrl); }); newPost.imageUrls = imageUrls;
return res.json(newPost); }
// post가 이미지가없는경우 return res.json(post);
그렇게 보내면 프론트에서 받아서 .. .. 받아서. . ....
...
죄송합니다.. 혹시 조금 더 힌트를주시면안될까요?
2023년 8월 31일 15:03 #96477
codingapple키 마스터한글로 논리부터 완벽히 적으면 머리아플 이유가 없습니다 아니면 서버로 들어오는 새로운 이미지는 file이고 기존 이미지는 string 일텐데 그거보고 s3에 업로드할지말지 판단해도 될듯요
-
글쓴이글
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
- 답변은 로그인 후 가능합니다.