구글앱엔진에서 제공하는 Blob Store는 HTTP request방식을 이용하여 파일을 업로드와 다운로드를 할수있는 API를 제공해준다. 

구글앱엔진에서는 App에서 일정 크기의 데이터객체를 HTTP Connection을 이용하여 업로드 혹은 다운로드 할수있는 BlobStore서비스를 제공해준다. 이러한 데이터 객체를  BlobStore Value 혹은 Blob이라고 불린다. BlobStore Value는 요청에 대한 응답으로 이루어지는데 Web Form을 이용하여 업로드를 한다. App은 직접적으로 Blob Data를 생성할수는 없다. 그대신에 Web Form을 이용하여 Submit되어지거나 혹은 HTTP POST request를통해 간접적인 방법으로 Blob이 생성된다. Blob Store Value는 BlobStore API를통해 유저혹은 App에게 제공되어진다.

BlobStore는 DataStore와는 관련이없는 BlobStore 공유의 값을 가진다. (BlobStore와 DataStore의 저장공간도 따로 존재한다.).

※ BlobStore는 비디오파일이나 이미지파일과 같이 크기가 큰 파일을 저장하는데 매우 유용하다.

웹상에서 파일을 업로드할때는 BlobStore API호출을 통해 Web Form의 Action URL을 생성한다. 이러한 방식으로 생성된 Web Form은 파일 업로드형식을 가지는데 유저들은 이를통해 파일을 BlobStore에 직접적으로 파일을 업로드를 할수있다. 이때 BlobStore는 Blob을 저장하고, Blob Key를 포함하여 다시한번 Request한다. 그리고 파일의 경로를 App으로 전달을 한다. 이렇게 한번 저장된 Blob은 수정이 불가능하며 App에서 Blob을 직접적으로 접근을 할수없다. 그대신에 App에서는 Blob Entity정보를 통해 간접적으로 접근이 가능하다.



Jsp를 이용하여 파일을 업로드

파일을 업로드할때 반드시 파일이 선택되어야 하고, Form의 enctype가 반드시 multipart/form-data로 설정이 도어있어야한다. 유저가 Submit버튼을 누르게 될경우 BlobStore API를 이용하여 POST방식으로 파일이 업로드도어 BlobStore에 저장이되고 Blob이 생성이 된다. 그리고 App에 경로와 bolo Key가 Request방식으로 전달되어진다. 
Posted by No names
,