A biblioteca cliente do App Engine para o Cloud Storage oferece as seguintes funções:
Funções
- cloudstorage.copy2() copia o ficheiro especificado para o novo nome de ficheiro especificado no mesmo contentor do Cloud Storage.
- cloudstorage.delete() elimina o objeto especificado do contentor do Cloud Storage.
- cloudstorage.listbucket() lista os objetos no contentor do Cloud Storage.
- cloudstorage.open() abre um objeto existente no contentor do Cloud Storage para leitura ou substituição, ou cria um novo objeto, consoante o modo especificado
- cloudstorage.stat() fornece informações de metadados sobre o ficheiro, como o tipo de conteúdo, o tamanho, a data/hora, o resumo MD5 e os cabeçalhos do Cloud Storage.
Depois de invocar cloudstorage.open()
para devolver o objeto semelhante a um ficheiro que representa o objeto do Cloud Storage especificado, pode usar as funções de ficheiro padrão do Python, como write()
e close()
, para escrever um objeto no contentor do Cloud Storage ou read()
para ler um objeto do contentor do Cloud Storage.
Aulas
Funções
- cloudstorage.copy2 (src, dst, metadata=None, retry_params=None)
-
Copia o ficheiro especificado para o novo nome de ficheiro especificado, copiando também os metadados por predefinição. Opcionalmente, pode substituir os metadados na cópia fornecendo o parâmetro
metadata
opcional.Gera cloudstorage.NotFoundError se o objeto do Cloud Storage especificado não existir ou cloudstorage.AuthorizationError se a autorização falhar.
Argumentos
- src (Obrigatório)
- O nome completo do ficheiro do Cloud Storage para o objeto, no formato
/bucket/object_name
. Tem de ser um nome de ficheiro completo e pode incluir o delimitador `/`. - dst (Obrigatório)
- O nome completo do ficheiro do Cloud Storage para a cópia do objeto, no formato
/bucket/object_name
. Tem de ser um nome de ficheiro completo e pode incluir o delimitador `/`. - metadata= None (Opcional.)
- Um dicionário de metadados para esta cópia, por exemplo,
{'x-goog-meta-foo': 'bar'}
. Se fornecer o parâmetro de metadados, nenhum dos metadados originais é copiado para o novo ficheiro. Se não forem fornecidos metadados (None
), todos os metadados do ficheiro de origem são copiados. - retry_params= None (Opcional.)
- Um objeto RetryParams no qual fornece as alterações que quer fazer às predefinições de limite de tempo e definições de repetição para esta chamada.
Exemplo
- Para copiar um ficheiro, mas adicionar novos metadados e ignorar o erro se o ficheiro de origem não existir:
-
import cloudstorage try: cloudstorage.copy2('/my_bucket/README', '/my_bucket/README2', metadata={'x-goog-meta-zzzzz': 'zzzzz'}) except cloudstorage.NotFoundError: pass
- cloudstorage.delete (filename, retry_params=None)
-
Elimina o ficheiro especificado do contentor do Cloud Storage.
Gera cloudstorage.NotFoundError se o objeto do Cloud Storage especificado não existir.
Argumentos
- filename (Obrigatório)
- O nome completo do ficheiro do Cloud Storage para o objeto, no formato
/bucket/object_name
. Tem de ser um nome de ficheiro completo e pode incluir o delimitador `/`. - retry_params= None (Opcional.)
- Um objeto RetryParams no qual fornece as alterações que quer fazer às predefinições de limite de tempo e definições de repetição para esta chamada.
Exemplo
- Para eliminar um ficheiro, mas ignorar o erro quando o ficheiro não existe:
-
import cloudstorage try: cloudstorage.delete(filename) except cloudstorage.NotFoundError: pass
- cloudstorage.listbucket (path_prefix, marker=None, max_keys=None, delimiter=None, retry_params=None)
- Devolve um objeto iterador de contentor. Este iterador devolve uma lista ordenada de objetos que correspondem a todos os filtros. Tenha em atenção que esta função é assíncrona. Não bloqueia, a menos que o iterador seja chamado
antes de o iterador obter resultados.
Esta função opera em dois modos diferentes, consoante use ou não o argumento
delimiter
:- Modo normal (predefinição): lista todos os ficheiros no contentor sem qualquer conceito de hierarquia. (O Cloud Storage não tem hierarquias de diretórios reais.)
- Modo de emulação de diretório: se especificar o argumento
delimiter
, este é usado como um separador de caminho para emular uma hierarquia de diretórios.
Argumentos
- path_prefix (Obrigatório)
- Um caminho do Cloud Storage no formato
/bucket
ou/bucket/prefix
, por exemplo,/bucket/foo/2001
. Apenas são devolvidos os objetos cujo caminho completo começa compath_prefix
. - marker= None (opcional)
- String. Outro prefixo do caminho. Apenas são devolvidos os objetos cujo caminho completo começa
lexicograficamente após o marcador, exclusivamente. O ficheiro usado como `marker` não é devolvido. Por exemplo, se quiser que todos os ficheiros listados a partir de
superduperfoo3.txt
sejam listados, especifique o ficheiro imediatamente anterior asuperduperfoo3.txt
, por exemplo: Uma forma de usar este parâmetro é usá-lo comstat = cloudstorage.listbucket("/my_bucket/foo", marker='/my_bucket/foo/superduperfoo2.txt')
max_keys
para "navegar" pelos nomes dos ficheiros do contentor. - max_keys= None (opcional)
- Número inteiro. Especifica o número máximo de objetos a devolver. Use-o se souber quantos objetos quer. (Caso contrário, a biblioteca do cliente do Cloud Storage
armazena automaticamente em buffer e pagina todos os resultados.) Pode ser usado com
marker
para percorrer os nomes de ficheiros num contentor.stats = cloudstorage.listbucket(bucket + '/foo', max_keys=page_size, marker=stat.filename)
- delimitador= Nenhum (opcional)
- String. Ativa o modo de diretório. Pode especificar um ou vários carateres a usar como separador de diretórios.
- retry_params= None (Opcional.)
- Um objeto RetryParams no qual fornece as alterações que quer fazer às predefinições de limite de tempo e definições de repetição para esta chamada.
Valor do resultado
Devolve um iterador de objetos GCSFileStat sobre os ficheiros correspondentes, ordenados por nome de ficheiro. No modo normal, os objetos
GCSFileStat
devolvidos têm os seguintes dados:filename
etag
(A representação hexadecimal do hash MD5 do conteúdo do ficheiro)st_size
(duração do conteúdo dos cabeçalhos)st_ctime
is_dir
Nota: se a propriedade
is_dir
do objetoGCSFileStat
forTrue
, a única outra propriedade no objeto éfilename
. Seis_dir
forFalse
, oGCSFileStat
também contém todas as outras propriedades. - cloudstorage.open(filename, mode='r', content_type=None, options=None, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=None)
-
No modo de leitura (
r
), abre o objeto do Cloud Storage especificado para leitura. No modo de escritaw
, se o ficheiro especificado existir, este é aberto para substituição (o anexo não é suportado). Se o ficheiro não existir, é criado no contentor especificado.Quando terminar de escrever, se quiser ler o ficheiro e/ou armazená-lo no Cloud Storage, feche o ficheiro com a função
close
. Não é um erro se não chamarclose
, mas o ficheiro não vai ser legível nem persistente no Cloud Storage.Aumentos:
- cloudstorage.NotFoundError se estiver no modo de leitura e o objeto especificado não existir.
Argumentos
- filename (Obrigatório)
- O ficheiro a abrir, no formato
/bucket/object
. Por exemplo,/my_bucket/lyrics/southamerica/list5.txt
. - mode (Opcional)
- String. Especifique "r" para abrir um ficheiro para leitura (predefinição). Especifique "w" para abrir um ficheiro existente para substituição ou para criar um novo ficheiro.
- content_type: (opcional)
- String. Usado apenas no modo de escrita. Deve especificar o tipo MIME do ficheiro (pode especificar qualquer tipo MIME válido). Se não fornecer este valor, o Cloud Storage usa o tipo
binary/octet-stream
por predefinição quando publica o objeto. - opções: (opcional)
Dict. Usado apenas no modo de escrita. As opções suportadas são
x-goog-acl
,x-goog-meta-
,cache-control
,content-disposition
econtent-encoding
.Se não fornecer uma opção
x-goog-acl
, o Cloud Storage usa a LCA predefinida do contentor. Os valores válidos parax-goog-acl
estão listados na documentação do Cloud Storage para x-goog-acl.Pode especificar metadados de objetos personalizados através de cabeçalhos x-goog-meta-. Por exemplo:
gcs_file = cloudstorage.open(filename, 'w', content_type='text/plain', options={'x-goog-acl': 'private','x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar'})
- read_buffer_size: (opcional)
- Número inteiro. Usado apenas no modo de leitura. Se não definir este valor,
é usado o tamanho do buffer predefinido (recomendado). Quando lê, deve fazê-lo por
read_buffer_size
para um desempenho de obtenção prévia ideal. - retry_params= None (Opcional.)
- Um objeto RetryParams no qual fornece as alterações que quer fazer às predefinições de limite de tempo e definições de repetição para esta chamada.
Valor do resultado
Devolve um buffer de leitura ou escrita, que suporta uma interface semelhante a um ficheiro na qual pode invocar as funções
read
,write
eclose
padrão do Python. Este buffer tem de ser fechado depois de terminar a leitura ou a escrita. - cloudstorage.stat(filename, retry_params=None)
-
Devolve um objeto GCSFileStat que contém metadados do ficheiro.
Gera cloudstorage.NotFoundError se o objeto do Cloud Storage especificado não existir.
Argumentos
- filename (Obrigatório)
- O ficheiro a abrir, no formato
/bucket/object
. Por exemplo,/my_bucket/lyrics/southamerica/list5.txt
- retry_params= None (Opcional.)
- Um objeto RetryParams no qual fornece as alterações que quer fazer às predefinições de limite de tempo e definições de repetição para esta chamada.
Valor do resultado
Devolve um objeto GCSFileStat que contém metadados do ficheiro.