Módulo google.appengine.ext.ndb.blobstore

Resumo

Interface do NDB para Blobstore.

Atualmente, ela aproveita google.appengine.ext.blobstore e fornece uma API semelhante. As principais diferenças de API:

  • BlobInfo é uma subclasse efetiva de Model, e não uma falsa classe de modelo. Para consultar, use BlobInfo.query() e as propriedades documentadas. Outras alterações: - O tipo é ‘__BlobInfo__’ (BLOB_INFO_KIND). - key() é um método que retorna uma instância de BlobKey. - put() e friends estão desabilitados. - Foram adicionados os métodos da classe get() e friends. - Foram adicionados os métodos da classe delete(), friends e open().

  • Em vez de BlobReferenceProperty, há BlobKeyProperty.

  • Não há função create_rpc(). Em vez disso, funções e métodos utilizam argumentos de palavra-chave para especificar as opções de prazo, retorno de chamada e, em alguns casos, armazenamento de dados.

  • As APIs (get() e delete()) que, em ext.blobstore, utilizam uma chave de blob ou uma lista de chaves de blob são divididas em duas: uma que utiliza uma chave de blob e uma que utiliza uma lista de chaves de blob, com o último tendo um nome que termina em _multi.

  • As seguintes APIs têm uma versão síncrona e uma assíncrona: - BlobInfo.get() - BlobInfo.delete() - create_upload_url() - get() - get_multi() - delete() - delete_multi() - fetch_data()

Conteúdo

exception google.appengine.ext.ndb.blobstore.BlobFetchSizeTooLargeErrorFonte

Bases: google.appengine.api.blobstore.blobstore.Error

Não foi possível buscar o bloco porque ele era muito grande.

class google.appengine.ext.ndb.blobstore.BlobInfo(*args, **kwds)Fonte

Bases: google.appengine.ext.ndb.model.Model

Informações sobre blobs no Blobstore.

Trata-se de uma subclasse de Model que foi alterada para não ser gravável.

Propriedades: - content_type: tipo de conteúdo de blob - creation: data de criação do blob, quando o upload foi feito - filename: nome de arquivo que o usuário selecionou na máquina dele - size: tamanho do blob não compactado - md5_hash: o valor de hash md5 do blob enviado (em hexadecimal)

API adicional:

Métodos de classe: - get(): recupera um BlobInfo por chave - get_multi(): recupera uma lista de BlobInfos por chaves - get_async(), get_multi_async(): versão assíncrona de get() e get_multi()

Métodos de instância: - delete(): exclui este blob - delete_async(): versão assíncrona de delete() - key(): retorna o BlobKey deste blob - open(): retorna uma instância de BlobReader deste blob

Como instâncias de BlobInfo são sincronizadas com o Blobstore, as políticas de cache de classe estão desativadas.

Não cria uma subclasse desta classe.

content_type

Uma propriedade indexada com o valor que é uma string de texto de comprimento limitado.

creation

Uma propriedade com o valor que é um objeto de data e hora.

Observação: diferentemente do Django, auto_now_add pode ser modificado definindo-se o valor antes de gravar a entidade. E, diferentemente do banco de dados clássico, auto_now não fornece um valor padrão. Além disso, diferentemente do banco de dados clássico, quando a entidade é escrita, os valores de propriedade são atualizados de acordo com o que foi escrito. Por fim, lembre-se de que isso também atualiza o valor no cache em processo e que auto_now_add pode interagir de maneira estranha com repetições de transação: uma repetição de uma propriedade com auto_now_add definido reutilizará o valor que foi definido na primeira tentativa.

delete(**options)Fonte

Exclui permanentemente este blob do Blobstore.

Parâmetros

**options: opções de criação de create_rpc()

delete_async(**options)Fonte

Versão assíncrona de delete().

filename

Uma propriedade indexada com o valor que é uma string de texto de comprimento limitado.

classmethod get(blob_key, **ctx_options)Fonte

Recupera um BlobInfo por chave.

Parâmetros
  • blob_key: uma chave de blob (pode ser uma instância de str, unicode ou BlobKey)

  • **ctx_options: opções de contexto de Model().get_by_id()

Retorna

Uma entidade BlobInfo associada à chave fornecida. Se não houver uma entidade assim, ela retornará None.

classmethod get_async(blob_key, **ctx_options)Fonte

Versão assíncrona de get().

classmethod get_multi(blob_keys, **ctx_options)Fonte

Versão multichave de get().

Parâmetros
  • blob_keys: uma lista de chaves de blob

  • **ctx_options: opções de contexto de Model().get_by_id()

Retorna

Uma lista com itens que são uma entidade BlobInfo ou None.

classmethod get_multi_async(blob_keys, **ctx_options)Fonte

Versão assíncrona de get_multi().

key()Fonte

Receba uma chave de blob.

Retorna

Instância de BlobKey que identifica esse blob.

md5_hash

Uma propriedade indexada com o valor que é uma string de texto de comprimento limitado.

open(*args, **kwds)Fonte

Retorna um BlobReader para este blob.

Parâmetros

**kwargs (*args,) –

Passado para o construtor BlobReader.

Retorna

Uma instância de BlobReader.

put_async(**ctx_options)Fonte

Maneira barata de tornar entidades de BlobInfo somente leitura.

size

Uma propriedade com o valor que é um inteiro ou longo (ou booleano) do Python.

exception google.appengine.ext.ndb.blobstore.BlobInfoParseErrorFonte

Bases: google.appengine.api.blobstore.blobstore.Error

O parâmetro CGI não contém um registro BlobInfo válido.

class google.appengine.ext.ndb.blobstore.BlobKey(blob_key)Fonte

Bases: object

Chave usada para identificar um blob no Blobstore.

Esse objeto encapsula uma string usada internamente pela Blobstore API para identificar blobs de aplicativo. O BlobKey corresponde ao nome da entidade BlobReference subjacente.

Essa classe é exposta na API em google.appengine.ext.db e google.appengine.ext.blobstore.

ToXml()Fonte
exception google.appengine.ext.ndb.blobstore.BlobNotFoundErrorFonte

Bases: google.appengine.api.blobstore.blobstore.Error

O blob não existe.

class google.appengine.ext.ndb.blobstore.BlobKeyProperty(*args, **kwds)Fonte

Bases: google.appengine.ext.ndb.model.Property

Uma propriedade com o valor que é um objeto BlobKey.

class google.appengine.ext.ndb.blobstore.BlobReader(blob, buffer_size=131072, position=0)Fonte

Bases: google.appengine.ext.blobstore.blobstore.BlobReader

Fornece uma interface semelhante à de um arquivo somente leitura para um blob do blobstore.

blob_info

Retorna o BlobInfo deste arquivo.

exception google.appengine.ext.ndb.blobstore.DataIndexOutOfRangeErrorFonte

Bases: google.appengine.api.blobstore.blobstore.Error

Não foi possível acessar os índices.

Os índices especificados estavam fora do intervalo ou na ordem errada.

exception google.appengine.ext.ndb.blobstore.PermissionDeniedErrorFonte

Bases: google.appengine.api.blobstore.blobstore.Error

A operação não foi concluída. Examine as permissões obrigatórias.

exception google.appengine.ext.ndb.blobstore.ErrorFonte

Bases: exceptions.Exception

Tipo de erro do blobstore de base.

exception google.appengine.ext.ndb.blobstore.InternalErrorFonte

Bases: google.appengine.api.blobstore.blobstore.Error

Ocorreu um erro interno.

google.appengine.ext.ndb.blobstore.create_upload_url(success_path, max_bytes_per_blob=None, max_bytes_total=None, **options)Fonte

Crie um URL de upload para um formulário POST.

Parâmetros
  • success_path: caminho dentro do aplicativo a ser chamado quando POST for bem-sucedido e o upload for concluído

  • max_bytes_per_blob: tamanho máximo em bytes que qualquer blob no upload pode ter ou None para nenhum tamanho máximo

  • max_bytes_total: tamanho máximo em bytes que os tamanhos agregados de todos os blobs no upload podem ter ou None para nenhum tamanho máximo

  • **options: opções de criação de create_rpc()

Retorna

O URL de upload.

Gera
  • TypeError: caso max_bytes_per_blob ou max_bytes_total não sejam tipos integrais;

  • ValueError: caso max_bytes_per_blob ou max_bytes_total não sejam valores positivos.

google.appengine.ext.ndb.blobstore.create_upload_url_async(*args, **kwds)Fonte

Versão assíncrona de create_upload_url().

google.appengine.ext.ndb.blobstore.delete(blob_key, **options)Fonte

Exclui um blob do Blobstore.

Parâmetros
  • blob_key: uma chave de blob (pode ser uma instância de str, unicode ou BlobKey)

  • **options: opções de criação de create_rpc()

google.appengine.ext.ndb.blobstore.delete_async(*args, **kwds)Fonte

Versão assíncrona de delete().

google.appengine.ext.ndb.blobstore.delete_multi(blob_keys, **options)Fonte

Exclui blobs do Blobstore.

Parâmetros
  • blob_keys: uma lista de chaves de blob

  • **options: opções de criação de create_rpc()

google.appengine.ext.ndb.blobstore.delete_multi_async(*args, **kwds)Fonte

Versão assíncrona de delete_multi().

google.appengine.ext.ndb.blobstore.fetch_data(blob, start_index, end_index, **options)Fonte

Busca dados do blob.

Busca um fragmento de um blob de até MAX_BLOB_FETCH_SIZE. A tentativa de buscar um fragmento que excede os limites do blob retornará o valor de dados de start_index até o fim do blob, que terá um tamanho menor que o solicitado. Solicitar um fragmento que esteja totalmente fora dos limites do blob retornará uma string vazia. A tentativa de buscar um índice negativo vai gerar uma exceção.

Parâmetros
  • blob: representação de BlobInfo, BlobKey, str ou unicode do BlobKey do blob para buscar dados

  • start_index: índice inicial dos dados do blob a serem buscados (não pode ser negativo)

  • end_index: índice final (inclusive) dos dados do blob a serem buscados (precisa ser >= start_index)

  • **options: opções de criação de create_rpc()

Retorna

str que contém dados parciais do blob. Se forem legais, mas estiverem fora dos limites do blob, os índices retornarão uma string vazia.

Gera
  • TypeError, caso start_index ou end_index não sejam indexados. Também, quando blob não é uma string, BlobKey ou BlobInfo;

  • DataIndexOutOfRangeError quando start_index < 0 ou end_index < start_index;

  • BlobFetchSizeTooLargeError quando o fragmento do blob de solicitação é maior que MAX_BLOB_FETCH_SIZE;

  • BlobNotFoundError quando o blob não existe.

google.appengine.ext.ndb.blobstore.fetch_data_async(*args, **kwds)Fonte

Versão assíncrona de fetch_data().

google.appengine.ext.ndb.blobstore.parse_blob_info(field_storage)Fonte

Analisa um registro BlobInfo de field_storage do upload de arquivo.

Parâmetros

field_storage: cgi.FieldStorage que representa o blob enviado.

Retorna

Registro de BlobInfo como analisado na instância de armazenamento de campo. None, caso não haja field_storage.

Gera
  • BlobInfoParseError quando field_storage fornecido não contém informações;

  • informações para criar um objeto BlobInfo.