1

내 앱의 클라이언트 측에서 대용량 파일 (1GB 이상)을 업로드하는 가장 좋은 방법을 찾고 있습니다. Google Cloud Storage 버킷노드/익스프레스 서버를 통해 대용량 파일 (2GB 이상)을 Google Cloud Storage 버킷으로 스트리밍

버킷이 비공개이며 현재 노드/익스프레스 서버에 파일을 보내고 GCS 버킷으로 스트리밍하려고합니다. 나는 서버에서 파일 크기 제약으로 인해 문제가 발생한다고 생각합니다. 더 작은 파일에는 잘 작동하지만 테스트를 위해 사용하는 1GB 파일은 통과하지 못합니다.

내가 탐구하고있어 다른 방법은 다음과 같습니다

  • 파일 분할 클라이언트 측 한 후 이전에 GCS로 보내기 서버 측을 재 조립
  • 구글 IAM API를 통해 임시 서비스 계정을 생성 (GCS 쓰기 권한), 파일 업로드, 업로드 확인 후 계정 삭제 (서비스 계정을 노출하므로 계정을 삭제할 수 있음) 클라이언트에게 전송
  • ???

이 시점에서 올바른 방향을 가리키고 있습니다.

답변

1

가장 직접적인 전송은 클라이언트에서 GCS로 직접 전송됩니다. 클라이언트를 시작한 다음 업로드를 수행하는 데 사용할 서명 된 URL을 클라이언트에 보낼 수도 있습니다. 고객이 귀찮아 할 필요가없는 인터넷을 충분히 빨리 사용할 것으로 예상하지 않는 한 재개 가능한 업로드를 사용하고 싶을 것입니다.

클라이언트가 스테이징 GCS 버킷에 업로드 한 다음 앱에 업로드가 완료되었음을 알리는 것이 좋습니다. 그러면 앱에서 최종 버킷으로 복사합니다 (인스턴트 작업입니다). 오브젝트가 동일한 region 및 스토리지 클래스에있는 경우), 반드시 필수는 아니지만.

나는 당신이 그것을 어떤 식 으로든 변환하고 싶지 않거나 여러 클라우드 공급자를 투명하게 사용하기를 원하지 않는다면 앱을 통해 스트리밍하는 것을 피하려고합니다.

일회성 서비스 계정을 만드는 것은 좋은 생각이 아닙니다. 나는 그것들의 한계가 무엇인지 잘 모르겠다. 그러나 당신은 그것들을 확장하는 이슈에 부딪 힐지도 모른다.

+0

감사합니다. Brandon! 이것은 매우 유용했습니다. –