2017-09-07 19 views
0

gRPC 및 프로토콜 버퍼를 사용하여 한 프로세스에서 다른 프로세스로 파일 또는 이미지를 전송하는 표준 방법은 무엇입니까? 파일 크기는 1MB에서 6MB입니다.gRPC를 사용한 파일 전송

기본적으로 을 알고 싶습니다. 파이썬, C++ 및 golang에 대해 발신자/수신자 코드 쌍을 구현하는 방법을 알고 싶습니다.

http://github.com/johanbrandhorst/chunker

는 지금까지 golang에 대한 찾을 수있는 가장 가까운 것입니다. 파이썬과 C++로 확장 할 수 있는지 생각 중입니다. 더 적은 의존성을 가진 더 일반적인 접근법이 선호됩니다.

IPC 메시지 전달을 통해 이미지 btw 머신/프로세스를 교환하기 위해 멀티 서비스를 만들고 있습니다. 또 다른 옵션은 공유 메모리를 사용하는 것입니다. Redis가 이미지를 저장할 수 있는지 여부는 확실하지 않습니다.

답변

1

이전에 해본 적이 없지만 프로토콜 버퍼 언어가 지원하는 유형으로 생각됩니다.

에 임의의 바이트 시퀀스이 포함될 수 있으므로 bytes 유형을 사용할 수 있습니다. 콘텐츠를 저장하기 전에 콘텐츠를 인코딩하고 배정하고 "배송하십시오"!

스칼라 유형은 here입니다.

또 다른 접근법은 관련된 "서비스"가 읽을 수있는 위치에 파일을 저장하는 것입니다. 그 중 일부는 필요할 경우 쓸 수도 있습니다. 그런 다음 해당 파일에 액세스하는 데 필요한 정보가있는 "관심있는"서비스에 gRPC 메시지를 보냅니다.

0

전체 파일을 단일 메시지 (예 : bytes)에 넣는 소규모 파일 (예 : 1 MiB 미만)의 경우 매우 간단합니다. 대용량 파일의 경우 파일을 부분별로 청취하고 스트림을 사용하는 것이 자연 스럽습니다. my answer for a similar question을 참조하십시오.