1

파일 API에 어제 공지되지 않은 중단 시간 (ApiTemporaryUnavailableError)이 발생하여 몇 시간 동안 지속되었습니다.AppEngine 파일에서 cloudstorage로 마이그레이션

이제 (지금은 사용되지 않는) 파일 API를 cloudstorage (GCS)로 대체하려고하지만 여전히 파일 업로드 또는 다운로드와 같은 다른 작업을 위해 blobstore API를 계속 사용하려고합니다. 또한 파일 API로 작성된 기존 파일을 blobstore에 보관합니다.

주요 문제는 응용 프로그램이 나중에 MIME 유형, 파일 이름, 목록 모양을 결정하기 위해 BlobInfo를 사용한다는 것입니다. 그러나 문서에 따르면 GCS로 작성되고 blobstore.create_gs_key를 통해 blobstore에 삽입 된 파일에는 BlobInfo가 없습니다.

가능한 해결책은 무엇입니까?

  • 구글 테이블 이외에 자신의 BlobInfo 데이터 테이블을 유지
  • 멀리 GCS에 Blob 저장소에서 전체 코드베이스를 변환 (및 마이그레이션 (BlobInfo 또는 GCS 메타 데이터를 사용하거나 있음) 저장 중재자 쓰기 기존 BLOB를 GCS로)
  • App Engine에 대해 잊어 버리고 Compute Engine 또는 EC2에서 독립 실행 형 응용 프로그램을 실행하십시오 (아래 참조)
  • ???

참고 : Google에서 사용하는 App Engine API 부분 (우리는 dev server를 사용하지 않음)의 비공개 구현을 사용하는 응용 프로그램의 독립 실행 형 버전 (로컬로 실행 됨)이 있습니다. 우리의 응용 프로그램. 따라서 모든 코드에는 로컬 구현이 필요합니다.

+0

확실히 답이 아니지만 파일 API가 백업되었음을 지적하는 것이 중요합니다. 뜻하지는 않지만 다시 돌아 가지는 않을 것이지만 이전 코드는 잠깐 동안 작동해야합니다. – Patrice

+0

AppEngine을 계속 사용하려면 향후 코드를 GCS로 리팩터링하고 기존 BLOB를 GCS로 마이그레이션해야합니다 (예 : 모든 엔티티를 반복하고, 얼룩을 읽고, GCS에 쓰는 간단한 mapreduce). –

답변

0

나는 GCS 사용에 관한 요지를 썼다. 살펴보기 : https://gist.github.com/voscausa/9541133 DEV에 GCS 앱을 설치하여 사용하는 방법을 보여줍니다.

+0

GCS에 쓰는 방법을 이미 이해했습니다. 내 문제는 우리의 응용 프로그램에서 BlobInfo를 사용한다는 것입니다. GCS 파일에 대한 BlobInfo를 얻습니까? –

+0

GCS에는 클래스와 같은 BlobInfo가 아닌 함수 인터페이스가 있습니다. 하지만 기본 버킷에이 함수를 사용하는 BlobInfo 클래스를 직접 작성할 수 있습니다. 내가 언급 한 것들, 즉 MIME 형식, 파일 이름 및 목록 BLOB에 대한 큰 어려움은 기대하지 않습니다. 당신이 중재인과 무슨 뜻 이니? – voscausa

+0

현재 BLOBSTORE에 데이터가 있습니다 (BLOB 키를 통해 데이터베이스가있는 경우 다른 부분에서 참조). 그래서 우리는 그들을 GCS로 옮기고 참조를 업데이트하십시오) 또는 blobstore와 GCS를 처리하는 코드가 필요합니다 (중재자가 의미하는 것) –