Storage
Funções da Azion Lib no pacote @aziontech/storage que criam, listam, leem, atualizam e excluem buckets e objetos do Object Storage.
O pacote @aziontech/storage é a biblioteca da Azion Lib para o Object Storage. Suas funções criam, listam, leem, atualizam e excluem buckets e os objetos dentro deles pela Azion API v4. Cada função recebe um único objeto como argumento e retorna um envelope de resposta em vez de lançar uma exceção.
Instale o pacote:
Os exemplos desta página são módulos ES em TypeScript que usam await de nível superior e rodam no Node.js. Eles importam tipos com import type, o que mantém os exemplos carregáveis quando as anotações de tipo são removidas.
Autenticação
As funções leem seu personal token da variável de ambiente AZION_TOKEN. Um client criado com createClient recebe o token no campo token.
| Variável | Descrição |
|---|---|
AZION_TOKEN | Seu personal token da Azion. |
AZION_DEBUG | Com true, as funções registram no log os corpos de resposta que a API retorna. |
Para saber como os pacotes da Azion Lib resolvem o token e a configuração de debug, consulte Como a Azion Lib funciona.
Envelope de resposta
Toda função retorna um objeto AzionStorageResponse, { data?, error? }. Em caso de sucesso, data contém o bucket, o objeto ou a lista. Em caso de falha, error contém { message, operation }, em que operation nomeia a chamada que falhou, como create bucket ou get object by key.
Um deleteBucket ou deleteObject bem-sucedido não retorna data: o envelope contém apenas error, com o valor undefined. Depois de uma exclusão, verifique error, não data.
createClient
Cria um client que guarda um token e as opções de requisição e expõe as funções de bucket como métodos. createClient também é o export padrão do pacote.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
token | string | Não | Seu personal token da Azion. |
options | AzionClientOptions | Não | Opções de requisição para todas as chamadas que o client faz. |
Retorna um AzionStorageClient. Seus métodos recebem o mesmo objeto que a função correspondente desta página, sem options. O client não tem métodos de objeto: leia e grave objetos com as funções de objeto ou com os métodos de bucket.
Este exemplo cria um client e, com ele, um bucket:
Saída:
setupStorage
Retorna um bucket pelo nome e, quando ele não existe, cria o bucket antes. A função lê o bucket e, somente quando essa leitura não encontra nada, cria um com o workloads_access que você passa.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | O nome do bucket a retornar ou criar. |
workloads_access | EdgeAccessType | Sim | O nível de acesso do bucket, caso a função o crie. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como um AzionBucket, existente ou criado. O bucket traz os métodos de bucket, então você pode gravar nele em seguida.
Este exemplo obtém um bucket que existe e grava um objeto JSON nele:
Saída:
createBucket
Cria um bucket.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | O nome do bucket. |
workloads_access | EdgeAccessType | Sim | O nível de acesso do bucket. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como o AzionBucket criado. Um bucket não tem id: todas as outras funções o encontram pelo name.
Saída:
getBuckets
Lista os buckets da conta, uma página por vez.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
params | AzionBucketCollectionParams | Não | Paginação, busca, ordenação e seleção de campos. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como um AzionBucketCollection: buckets contém a página, e count contém o número de buckets da conta, não o tamanho da página.
Saída:
getBucket
Retorna um bucket pelo nome.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | O nome do bucket. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como um AzionBucket, com os métodos de bucket. Um nome que não corresponde a nenhum bucket retorna error com a mensagem The specified bucket does not exist..
Saída:
updateBucket
Altera o nível de acesso de um bucket.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | O nome do bucket a atualizar. |
workloads_access | EdgeAccessType | Sim | O nível de acesso a definir no bucket. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como o AzionBucket atualizado.
Saída:
deleteBucket
Exclui um bucket pelo nome. A API exclui um bucket somente quando ele não contém objetos, e não nas 24 horas seguintes à última exclusão de objeto nele. Um bucket que nunca conteve um objeto é excluído na hora.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | O nome do bucket a excluir. |
options | AzionClientOptions | Não | Opções de requisição. |
Em caso de sucesso, o envelope não contém data, por isso o exemplo verifica error. Uma exclusão recusada preenche error; as mensagens estão em Erros.
Saída:
createObject
Cria um objeto em um bucket.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
bucket | string | Sim | O nome do bucket em que o objeto é criado. |
key | string | Sim | A chave (nome) do objeto. |
content | ContentObjectStorage | Sim | O conteúdo do objeto: uma string, um ArrayBuffer, um ReadableStream ou um Uint8Array. |
params | { content_type?: string } | Não | Configurações do objeto. content_type define o content type do objeto. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como um AzionBucketObject com key, content_type e state. O objeto criado não traz content; leia o conteúdo com getObjectByKey.
Saída:
getObjectByKey
Retorna um objeto, com seu conteúdo, pela chave.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
bucket | string | Sim | O nome do bucket que contém o objeto. |
key | string | Sim | A chave do objeto. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como um AzionBucketObject com key e content. Uma chave que não corresponde a nenhum objeto retorna error com a mensagem The specified bucket object does not exist..
Saída:
getObjects
Lista os objetos de um bucket.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
bucket | string | Sim | O nome do bucket a listar. |
params | AzionObjectCollectionParams | Não | O número máximo de objetos a retornar. Sem ele, a função solicita max_object_count=10000. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como um AzionBucketObjects: objects e count. Cada objeto listado traz key, size e last_modified. A API também retorna is_folder em cada objeto, campo que o tipo não declara.
Saída:
updateObject
Substitui o conteúdo de um objeto.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
bucket | string | Sim | O nome do bucket que contém o objeto. |
key | string | Sim | A chave do objeto a atualizar. |
content | ContentObjectStorage | Sim | O conteúdo que substitui o atual: uma string, um ArrayBuffer, um ReadableStream ou um Uint8Array. |
params | { content_type?: string } | Não | Configurações do objeto. content_type define o content type do objeto. |
options | AzionClientOptions | Não | Opções de requisição. |
Retorna data como o AzionBucketObject atualizado, com key e content.
Saída:
deleteObject
Exclui um objeto de um bucket.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
bucket | string | Sim | O nome do bucket que contém o objeto. |
key | string | Sim | A chave do objeto a excluir. |
options | AzionClientOptions | Não | Opções de requisição. |
Em caso de sucesso, o envelope não contém data, por isso o exemplo verifica error. Uma chave que não corresponde a nenhum objeto preenche error com The specified bucket object does not exist.. Excluir um objeto também bloqueia o deleteBucket nesse bucket por 24 horas.
Saída:
Métodos de bucket
Um bucket que getBucket, setupStorage ou createBucket retorna traz cinco métodos que agem sobre esse bucket. Cada um recebe um único objeto e retorna o mesmo envelope que a função correspondente:
| Método | Argumento | Retorna data como |
|---|---|---|
getObjects | { params: AzionObjectCollectionParams } (params é obrigatório) | AzionBucketObjects |
getObjectByKey | { key: string } | AzionBucketObject |
createObject | { key: string; content: ContentObjectStorage; params?: { content_type?: string } } | AzionBucketObject |
updateObject | { key: string; content: ContentObjectStorage; params?: { content_type?: string } } | AzionBucketObject |
deleteObject | { key: string } | nada em caso de sucesso; verifique error |
Este exemplo lê um bucket e, em seguida, lista, lê, atualiza e exclui um objeto pelos métodos dele:
Saída:
Erros
Uma chamada que falha retorna estas mensagens em error.message. error.operation nomeia a chamada, como get all buckets ou delete bucket.
| Mensagem | Causa | O que fazer |
|---|---|---|
Authentication credentials were not provided. | Nenhum token chegou à chamada: AZION_TOKEN não está definida e nenhum token foi passado ao client. | Defina AZION_TOKEN ou passe token para createClient. |
Invalid authentication credentials. | O token não é válido. | Use um personal token válido. |
This field is required. | A requisição de criação não tem workloads_access. | Passe name e workloads_access. |
The specified bucket does not exist. | Nenhum bucket da conta tem esse nome. | Confira o nome com getBuckets. |
The specified bucket object does not exist. | O bucket não contém nenhum objeto com essa chave. | Confira a chave com getObjects. |
Unable to delete a non-empty bucket. Additionally, objects deleted within the last 24 hours are also taken into consideration. | O bucket contém objetos, ou um objeto foi excluído dele nas últimas 24 horas. | Exclua todos os objetos e aguarde 24 horas após a última exclusão. Para mais informações, consulte Buckets e objetos. |
Tipos
O pacote exporta estes tipos. Importe-os com import type.
AzionStorageClient
O client que createClient retorna. Todo método recebe um único objeto.
| Método | Argumento | Retorno |
|---|---|---|
getBuckets | { params?: AzionBucketCollectionParams } (opcional) | Promise<AzionStorageResponse<AzionBucketCollection>> |
getBucket | { name: string } | Promise<AzionStorageResponse<AzionBucket>> |
createBucket | { name: string; workloads_access: EdgeAccessType } | Promise<AzionStorageResponse<AzionBucket>> |
updateBucket | { name: string; workloads_access: EdgeAccessType } | Promise<AzionStorageResponse<AzionBucket>> |
deleteBucket | { name: string } | Promise<AzionStorageResponse<AzionDeletedBucket>> |
setupStorage | { name: string; workloads_access: EdgeAccessType } | Promise<AzionStorageResponse<AzionBucket>> |
AzionClientOptions
Opções de requisição que toda função recebe em options e que createClient recebe para todas as suas chamadas.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
debug | boolean | Não | Registra no log os corpos de resposta que a API retorna. |
force | boolean | Não | Força a operação, mesmo quando ela pode destruir dados. |
env | AzionEnvironment | Não | O ambiente para onde vão as chamadas. |
external | boolean | Não | Força o uso da API REST em vez da API integrada ao runtime. |
AzionEnvironment
O ambiente que um client chama.
AzionStorageResponse
O envelope que toda função retorna. Para saber como lê-lo, consulte Envelope de resposta.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
data | T | Não | O resultado da chamada. Ausente depois de uma exclusão bem-sucedida. |
error | { message: string; operation: string } | Não | A mensagem de erro e a operação que falhou. |
AzionBucket
Um bucket.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | O nome do bucket. |
workloads_access | EdgeAccessType | Sim | O nível de acesso do bucket. |
state | 'executed' | 'executed-runtime' | 'pending' | Não | O estado do bucket. |
last_editor | string | Não | O usuário que editou o bucket por último. |
last_modified | string | Não | Quando o bucket foi modificado pela última vez. |
product_version | string | Não | A versão do produto. |
getObjects, getObjectByKey, createObject, updateObject, deleteObject | funções | Sim | Os métodos de bucket. |
AzionBucketCollection
Uma página de buckets.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
buckets | AzionBucket[] | Sim | Os buckets da página. |
count | number | Sim | O número de buckets da conta. |
AzionBucketCollectionParams
Paginação e filtragem para getBuckets.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | number | Não | O número da página. |
page_size | number | Não | O número de buckets por página. |
search | string | Não | Corresponde a parte do nome de um bucket. |
ordering | string | Não | O campo que ordena os resultados. |
fields | string | Não | Os campos a retornar, separados por vírgula. |
AzionBucketObject
Um objeto em um bucket.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
key | string | Sim | A chave do objeto. |
state | 'executed' | 'executed-runtime' | 'pending' | Não | O estado do objeto. |
size | number | Não | O tamanho do objeto, em bytes. |
last_modified | string | Não | Quando o objeto foi modificado pela última vez. |
content_type | string | Não | O content type do objeto. |
content | ContentObjectStorage | Não | O conteúdo do objeto. |
AzionBucketObjects
Uma lista de objetos.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
objects | AzionBucketObject[] | Sim | Os objetos do bucket. |
count | number | Sim | O número de objetos da lista. |
AzionObjectCollectionParams
O limite para getObjects.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
max_object_count | number | Não | O número máximo de objetos por requisição. |
AzionDeletedBucket
O tipo que deleteBucket declara para data. Uma exclusão bem-sucedida não retorna data.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | O nome do bucket. |
state | 'executed' | 'executed-runtime' | 'pending' | Não | O estado do bucket. |
AzionDeletedBucketObject
O tipo que deleteObject declara para data. Uma exclusão bem-sucedida não retorna data.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
key | string | Sim | A chave do objeto excluído. |
state | 'executed' | 'executed-runtime' | 'pending' | Não | O estado da exclusão. |
ContentObjectStorage
O conteúdo que um objeto aceita.
EdgeAccessType
O nível de acesso de um bucket: o que a plataforma da Azion pode fazer com ele quando uma aplicação o serve. Para saber o que cada valor permite, consulte Níveis de acesso.