2011-01-17 5 views
2

현재 일부 오프라인 처리 (사용자 데이터 백업)를 수행하는 GAE 앱이 있으며 10 - 100MB 정도의 어딘가에있는 파일을 생성합니다. 이 파일을 사용자에게 제공하는 가장 좋은 방법은 확실하지 않습니다. 내가 고려하고 두 가지 옵션은 다음과 같습니다Google App Engine을 사용하여 대량으로 생성 된 파일을 검색 하시겠습니까?

  1. 는 BLOB 저장소에 양식 업로드로 '눈속임'을, 정상 Blob 저장소 과정을 통해 진행이 파일을 제공 할 수있는 오프라인 처리 코드에 몇 가지 코드를 추가.

  2. 오프라인 처리 코드를 사용하면 파일을 GAE의 어딘가에 저장하고 거기에서 검색 코드를 제공 할 수 있습니다.

더 나은 접근 방식이 있습니까? 나는 GAE에 잘 맞지 않는 기능이라고 생각합니다. dbStext 또는 Dd.Blob 데이터 저장소에 저장할 생각했지만 거기에 1 MB 제한이 발생합니다.

모든 입력을 감상 할 수

, 나는 그것이 더 나은 것을인지 모르겠어요하지만

답변

3

양식 게시를 통해 blobstore에 저장하는 것이 현재 가장 유용한 옵션이라고 생각합니다. 프로그래밍 방식의 BLOBSTORE 작성을 구현할 계획이 있지만 아직 준비가되지 않았습니다.

+0

100MB. – geoffspear

+0

어디서 urlfetch가 들어 왔습니까? blobstore에 프로그래밍 방식의 쓰기가 제공됩니다. http://code.google.com/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore – Anentropic

+0

여기에 대한 업데이트가 있습니까? –

0

당신이 내려다 보이는 몇 가지 방법이 있습니다 :

분할 데이터에 많은 1메가바이트 덩어리와가 청크를 전송할 개별 요청

이렇게하면 청크로 데이터를 실제로 검색하기 위해 외부 응용 프로그램과 협력해야합니다. HTTP 범위 헤더를 사용하여 단일 파일의 환상을 유지하고자 할 수 있습니다. 그런 다음 모든 개별 청크의 ID를 유지하는 다른 개체를 만듭니다.

+0

좋은 포인트를 사용하여 다운로드 할 파일을 검색 할 수 있습니다, 그 접근 방식에 대해 잊었지만 슬프게도 나는이 응용 프로그램을 위해 일 것입니다 생각하지 않습니다. –

+0

파일 크기가 10-100MB 인 경우 최대 응답 크기는 실제로는 10MB이지만 이는 사소한 세부 사항입니다. 더 큰 덩어리로 나눌 필요가 있습니다. – geoffspear

1

첫 번째 옵션을 계속 사용합니다. 블롭을 준비 몇 가지 추가 코딩을 필요로하지만, Blob 저장소 API는 파일의 바이트 범위를 제공이 가능합니다

http://code.google.com/appengine/docs/python/blobstore/overview.html#Serving_a_Blob

당신은 파일 서비스 청크를 직접 구현할 필요가 없습니다.

+0

관련 질문 몇 개를 찾았습니다 : http://stackoverflow.com/questions/2149198/directly-putting-data-in-appengines-blobstore http://stackoverflow.com/questions/680305/using-multipartposthandler-to- post-form-data-with-python 그리고 여기에 몇 가지 코드가 있습니다. http://www.google.com/url?q=http://www.aleax.it/blosto.우편 및 EI = oLI0TfmjN5KwhAfhqZDeCw & SA = X & 오이 = unauthorizedredirect & CT =의 Targetlink 및 UST = 1295301032907785 & USG = AFQjCNHb48T_AsYZVQ8zaaX00YkpNf6cjw 난 당신이 확실히 최대 (적어도 문서에 따라) 1메가바이트보다 큰의 URL을 가져올 페이로드를 가지고 있고, 수 없기 때문에이 작동합니다 생각하지 않습니다 –

2

얼마 전부터 블로 브 스토어의 실험적 효과를 write files으로 사용할 수 있음을 언급해야합니다.

그런 다음 당신은 좋은 BlobstoreDownloadHandler

+0

예. 그것은 잘 작동하고 잠시 동안 주변에있다. –

관련 문제