Módulo google.appengine.api.files.records

Resumo

Files API.

Uso suspenso desde a versão 1.8.1: use a biblioteca de cliente do Google Cloud Storage.

Formato de registro leve.

Este formato implementa o formato de arquivo de registros de leveldb: http://leveldb.googlecode.com/svn/trunk/doc/log_format.txt

Esta é a especificação completa do formato caso leveldb opte por alterá-la.

O conteúdo do arquivo de registros é uma sequência de blocos de 32 KB. A única exceção é que a parte final do arquivo pode conter um bloqueio parcial.

Cada bloco consiste em uma sequência de registros:

block := record* trailer? record :=

checksum: uint32 // masked crc32c of type and data[] length: uint16 type: uint8 // One of FULL, FIRST, MIDDLE, LAST data: uint8[length]

Um registro jamais começa dentro dos últimos seis bytes de um bloco (porque não caberá). Todos os bytes restantes aqui formam o trailer, que precisa consistir inteiramente em zero bytes e ser pulado por leitores.

Além disso: se exatamente sete bytes forem deixados no bloco atual e um novo registro de comprimento diferente de zero for adicionado, o gravador precisará emitir um PRIMEIRO registro (que contém bytes zero de dados do usuário) para preencher os sete bytes do bloco à direita e emitir todos os dados do usuário em blocos subsequentes.

Mais tipos poderão ser adicionados futuramente. Alguns leitores podem pular tipos de registro que não entendem, outros podem relatar que alguns dados foram ignorados.

FULL == 1 FIRST == 2 MIDDLE == 3 LAST == 4

O registro FULL tem o conteúdo de um registro de usuário inteiro.

FIRST, MIDDLE, LAST são tipos usados em registros de usuário que foram divididos em vários fragmentos (normalmente por causa de limites de bloco). FIRST é o tipo do primeiro fragmento de um registro de usuário, LAST é o tipo do último fragmento de um registro de usuário e MID é o tipo de todos os fragmentos internos de um registro de usuário.

Por exemplo, considere uma sequência de registros de usuário:

A: comprimento 1.000 B: comprimento 97.270 C: comprimento 8.000

A será armazenado como um registro FULL no primeiro bloco.

B será dividido em três fragmentos: o primeiro ocupa o resto do primeiro bloco, o segundo ocupa todo o segundo bloco e o terceiro ocupa um prefixo do terceiro bloco. Ele deixará seis bytes livres no terceiro bloco, que será deixado vazio como os à direita.

C será armazenado como um registro FULL no quarto bloco.

Índice

exception google.appengine.api.files.records.Errorsource

Bases: exceptions.Exception

Classe base para exceções neste módulo.

class google.appengine.api.files.records.FileReadersource

Bases: object

Especificação de interface para gravadores a ser usada com o módulo recordrecords.

FileReader define um leitor com posição e determinação de procura/posição eficiente. Todas as leituras ocorrem na posição atual.

read(size)source

Leia dados do arquivo.

Lê dados da posição atual e avança a posição além do bloco de dados de leitura.

Parâmetros

size: número de bytes a serem lidos.

Retorna

Iterável em bytes. Se o número de bytes lidos for menor que o argumento "size", a suposição é que o fim do arquivo foi alcançado.

tell()source

Receba a posição atual do arquivo.

Retorna

Posição atual como um deslocamento de byte no arquivo como inteiro.

class google.appengine.api.files.records.FileWritersource

Bases: object

Especificação de interface para gravadores a serem usados com o módulo de registros.

write(data)source

Grave dados no arquivo.

Parâmetros

data: matriz de bytes, string ou iterável sobre bytes.

exception google.appengine.api.files.records.InvalidRecordErrorsource

Bases: google.appengine.api.files.records.Error

Gerado quando um registro inválido é encontrado.

class google.appengine.api.files.records.RecordsReader(reader)source

Bases: object

Um leitor para formato de registros.

read()source

Lê o registro da posição atual no leitor.

seek(*args, **kwargs)source

Define a posição atual do arquivo.

Os argumentos são passados diretamente para o leitor subjacente.

tell()source

Retorna a posição atual do arquivo.

class google.appengine.api.files.records.RecordsWriter(writer, _pad_last_block=True)source

Bases: object

Um gravador para formato de registros.

Este gravador só precisa ser usado dentro da instrução:

com records.RecordsWriter(file) como gravador:

writer.write(“record”)

O RecordsWriter vai preencher o último bloco com 0 ao sair com o escopo da instrução.

close()source
write(data)source

Grave um único registro.

Parâmetros

data: dados do registro a serem gravados como string, matriz de bytes ou sequência de bytes.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2