2012-09-05 4 views
2

저는 GAE 및 웹 개발에 일반적으로 익숙하지 않으며 GAE BlobStore와 함께 작업하려고합니다. 나는 파이썬을 사용하여 많은 양의 파일을 BlobStore에 업로드 할 때 리소스를 찾지 못하는 것 같습니다.BlobStore에 1 백만 개의 이미지 업로드

많은 자료와 예제를 읽었지 만,이 중 특정 문제에 도움이되지는 않습니다.

누구와 관련하여 리소스 나 경험이 있습니까?

답변

3

내 프로젝트에서 전용 서버에서 appengine으로 이동할 때 비슷한 요구 사항이있었습니다. 우리는 1 백만을 이동할 필요가 없었지만 약 100000이었습니다.

시간이 좀 걸렸지 만 끝에는 완료되었습니다.

꽤 간단한 해결책을 사용하여 이루어졌습니다. on blogstore docs 예와 같이 파일 업로드 서비스를 만들었습니다.

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def get(self): 
    upload_url = blobstore.create_upload_url('/upload') 
    self.response.write(upload_url) 

    def post(self): 
    upload_files = self.get_uploads('file') 
    blob_info = upload_files[0] 
    self.response.write(blob_info.key()) 

그리고 업로드 스크립트를 사용하여 localhost에서 파일을 업로드하십시오.

이러한 스크립트는 find, curlxargs의 조합으로 파이썬 또는 쉘 스크립트로 작성할 수 있습니다.

여러 스레드를 사용하여 속도를 높이고 병렬 처리에서 32 개의 업로드를 수행하는 데 도움이됩니다.

견고성을 위해 파일을 업로드 한 후 파일을 다운로드하고 크기/md5를 비교하고 문제가 발생한 경우 다시 업로드하려고 시도 할 수 있습니다.

3

이미지를 Google 저장 용량에 업로드하고 gsutil을 사용하여 AppEngine 앱에서 액세스 할 수있는 이미지 사용 방법에 따라 달라집니다. If는 재개 가능한 업로드가 있고 multithreading은 빠른 업로드를 제공합니다.

그렇지 않은 경우 버그로 인해 한 번에 500 개 미만의 파일 일괄 처리로 일괄 처리를하고 create_upload_url을 사용해야합니다.

관련 문제