From 84caaa39776a0357eee9d45eb24435fc273dfd7d Mon Sep 17 00:00:00 2001 From: changwng Date: Tue, 1 Apr 2025 17:04:47 +0900 Subject: [PATCH] =?UTF-8?q?p=5FatflCd.=20=EC=B6=94=EA=B0=80=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + apps/cs/.env.local | 2 +- apps/cs/src/pages/image/ui/image-page.tsx | 21 ++++++++++++++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 40f0d864b..c40b4dc6e 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ dist # env .env* +.qodo diff --git a/apps/cs/.env.local b/apps/cs/.env.local index 0648024ff..75aefcb90 100644 --- a/apps/cs/.env.local +++ b/apps/cs/.env.local @@ -1,2 +1,2 @@ NEXT_PUBLIC_PORT=3000 -NEXT_PUBLIC_SERVER_API_URL=http://192.168.0.102:8000 +NEXT_PUBLIC_SERVER_API_URL=http://localhost:8000 diff --git a/apps/cs/src/pages/image/ui/image-page.tsx b/apps/cs/src/pages/image/ui/image-page.tsx index 9c82acf0c..2067c1332 100644 --- a/apps/cs/src/pages/image/ui/image-page.tsx +++ b/apps/cs/src/pages/image/ui/image-page.tsx @@ -11,8 +11,12 @@ function ImagePage() { const file = e.target.files?.item(0); if (!file) return; + //const p_atflCd = store.getState().upload.atflCd; // Redux 스토어에서 atflCd 가져오기 + + const upload = new Upload(file, { endpoint: `${ENDPOINT.ATTACH_SERVICE.TUS_UPLOAD}`, + chunkSize: 10 * 1024 * 1024, // 5MB chunk size headers: { [CLAIM_NAME]: getCookie(CLAIM_NAME) ?? "", [AUTH_USER_ID]: getCookie(AUTH_USER_ID) ?? "", @@ -20,7 +24,8 @@ function ImagePage() { retryDelays: [0, 3000, 5000, 10000, 20000], metadata: { filename: file.name, - filetype: file.type, + filetype: file.type + // atflCd: p_atflCd, }, onError: function (error) { console.log("Failed because: " + error); @@ -35,6 +40,20 @@ function ImagePage() { (upload.file as File).name, upload.url, ); + console.log("upload._req:", upload._req); + + if(upload._req){ + const xhr = upload._req._xhr; // 업로드에 사용된 XMLHttpRequest 객체 + const xFileInfo = xhr.getResponseHeader('X-file-info'); // X-file-info 헤더 가져오기 + if (xFileInfo) { + const fileInfo = JSON.parse(xFileInfo); + console.log('fileInfo :', fileInfo); + const downloadUrl = `${ENDPOINT.ATTACH_SERVICE.TUS_DOWNLOAD}/${fileInfo.atflId}`; + console.log('Download URL:', downloadUrl); + // store.dispatch(setAtflCd(fileInfo.atflCd)); // atflCd 저장 + } + + } }, });