blob값을 api로 보내 s3에 저장하는 과정에서 저장은 되었지만 깨진 이미지가 저장되는 문제를 겪었다.
blob값을 생성하는 방식 2가지를 시도했는데,
둘다 size와 데이터가 잘 들어가고 올바를 형태이긴 했다.
일단 두번째 방식이 성공한 이유를 먼저 말하자면,
Blob생성 과정에서 데이터 변환이 더 명확하게 이루여져서 데이터 변환 오류를 방지 할 수 있는 코드였기 때문이다.
즉, 첫번째 방식에서 데이터 변환시 데이터가 깨지는 현상이 발생했다는 것.
const binaryString = atob(bas64String.split(",")[1]);
const blob = new Blob([binaryString], { type: "image/png" });
return blob;
const binaryString = atob(bas64String.split(",")[1]);
const arrayBuffer = new ArrayBuffer(binaryString.length);
const view = new Uint8Array(arrayBuffer);
for (let i = 0; i < binaryString.length; i++) {
view[i] = binaryString.charCodeAt(i) & 0xff;
}
reurn new Blob([arrayBuffer], { type: "image/png" })
참고로,