Serviço de armazenamento com o Google App Engine
-
21-09-2019 - |
Pergunta
Recebi um projeto para criar um serviço de armazenamento de arquivos no Google App Engine. Mas estou realmente duvidoso se ele é possível ou não o limite de 30 segundos para processar a resposta e, além disso, o BigTable é apenas um sistema de banco de dados, não um armazenamento servidor .am eu corrigi?
Solução
Você vai querer olhar para a API da Blobstore
http://code.google.com/appengine/docs/java/blobstore/
Ele permite que você faça upload de arquivos até 50 MB de tamanho e os sirva diretamente, sem passar pelo BigTable. O que estou fazendo é que tenho um script que abre um arquivo, cria o URL do Blobstore Upload e depois publica o arquivo que recebeu para esse URL e armazena uma entrada no BigTable. O limite de 30 segundos se aplica apenas ao tempo de processamento, para que o ato de fazer upload de um arquivo não conta para isso.
Outras dicas
Se tudo que você precisa é de armazenamento, uma escolha melhor do que o App Engine é o recém-beta-d Armazenamento do Google:
O Google Storage for Developers é um serviço RESTful para armazenar e acessar seus dados na infraestrutura do Google. O serviço combina o desempenho e a escalabilidade da nuvem do Google com recursos avançados de segurança e compartilhamento. Os destaques incluem:
Loja de objetos rápida, escalável e altamente disponível
Todos os dados replicados para vários data centers dos EUA
Leia-Your-Your-Writes Consistência de dados
Objetos de centenas de gigabytes em tamanho por solicitação com suporte de gama
Namespace de nome de bucket escondido no domínio
Autenticação e compartilhamento fácil e flexível
Autenticação baseada em chaves
Downloads autenticados de um navegador da web
Controles de acesso no nível individual e em grupo
Use e olhe se você gosta de Blobstore em ação Eu mantenho
Isso é definitivamente possível.
Há também algumas perguntas semelhantes que foram respondidas. Veja o Google para obter mais implementações.
Mas, em geral, sim, o limite de 30 segundos complica sua tarefa, mas você pode dividir seu arquivo em pedaços e armazená -los separadamente como texto/blobs. API remoto do mecanismo de aplicativo Pode fazer isso por você automaticamente.
Tenha em mente que você tem 10 MB por restrição de solicitação.
Dê uma olhada neste projeto para obter alguma inspiração:
http://django-filetransfers.appspot.com/
O SourCecode está disponível se você seguir um link na página.