Skip to content

Commit

Permalink
fix: 파일 업로드 api 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
hynseok committed Oct 4, 2024
1 parent 47fba3f commit 45ab8e6
Showing 1 changed file with 18 additions and 19 deletions.
37 changes: 18 additions & 19 deletions src/hooks/useFiles/useFiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,11 @@ export function useFiles() {

/**
* 파일 업로드 함수, 백엔드 [POST] /files API 호출
* 파일 업로드에 실패할 경우 재시도
*/
const uploadFiles = async (files: { id: string; file: File | null }[]) => {
const fileIds: string[] = [];
const filesToUpload: FormData = new FormData();

for (const { file, id } of files) {
if (file) {
// temp file의 경우에 id만 추가
Expand All @@ -46,26 +47,24 @@ export function useFiles() {
continue;
}

const formData = new FormData();
formData.append("file", file);

// 작업의 원자성을 위해 while 루프를 사용
let success = false;
while (!success) {
try {
const response = await CommonAxios.post("/files", formData, {
headers: {
"Content-Type": "multipart/form-data",
},
});
fileIds.push(response.data.id); // 서버에서 반환된 파일 ID
success = true;
} catch (error) {
console.error(`파일 업로드에 실패했습니다: ${file.name}. 재시도합니다.`, error);
}
}
filesToUpload.append("files", file);
}
}

try {
const response = await CommonAxios.post("/files", filesToUpload, {
headers: {
"Content-Type": "multipart/form-data",
},
});

response.data.forEach((file: ApiFile) => {
fileIds.push(String(file.id));
});
} catch (error) {
console.error(`파일 업로드에 실패했습니다.`, error);
}

return fileIds;
};

Expand Down

0 comments on commit 45ab8e6

Please sign in to comment.