본문 바로가기
개발 일지/PDF 파일 번역 프로그램

PDF 파일 번역 프로그램 - Firebase 파일 업로드

by tls1107 2024. 4. 18.
728x90
반응형

Firebase 업로드 기능 개발 시작!

분할한 파일을 Cloud Storage 에 업로드 해야 Cloud Translation API 를 사용할 수 있다. 

Cloud Storage 에 직접 업로드를 시도해봤는데 보안 문제 때문에 안되는 것이 많았다.

그래서 버킷만 Cloud Storage에 만들어두고 업로드와 다운로드는 Firebase 통해서 하기로 결정했다.

Firebase 에서 Cloud Storage의 버킷에 엑세스 할 수 있었다.

업로드가 모두 완료되고 나서 다음 작업을 할 수 있도록 Promise 도 걸어놨다.

const uploadPDF = async (splitPDFs, storage) => {
    try {
      // 분할된 PDF 업로드
      const uploadPromises = splitPDFs.map((pdfBytes, index) => {
        return new Promise((resolve, reject) => {
          var storageRef = ref(storage, `${index}_${file.name}`);
          var blob = new Blob([pdfBytes], { type: 'application/pdf' });
          uploadBytes(storageRef, blob).then((snapshot) => {
            console.log('Uploaded a file!');
            resolve();
          }).catch(reject);
        });
      });
      await Promise.all(uploadPromises);
      console.log("file upload finished");
    } catch (error) {
      console.error('파일 업로드 오류:', error);
      alert('파일 업로드 중 오류가 발생했습니다.');
    }
  }

 

이제 번역 기능과 다운로드 기능만 만들면 프로토타입은 완성이다!

728x90
반응형

댓글