Object Storage
Armazene arquivos como objetos em buckets, acesse-os pela API da Azion ou pelo protocolo S3 e sirva-os a partir de uma aplicação.
O armazenamento de objetos guarda um arquivo inteiro, sob um nome que você escolhe, em um contêiner plano. Não há diretórios nem escritas parciais: um arquivo é gravado de uma vez, lido como uma unidade e substituído por inteiro. O nome é o único endereço que ele tem, então tudo o que lê o arquivo depois o lê por esse nome. O modelo serve para qualquer conteúdo gravado com pouca frequência e lido com muita, como imagens, vídeos, arquivos compactados e artefatos de build.
O Object Storage guarda esses arquivos na infraestrutura que a Azion opera, como objetos dentro de buckets. Um Connector aponta uma aplicação para um bucket, de modo que uma requisição ao seu domínio é respondida a partir dele, e o código no Azion Runtime lê e grava os mesmos objetos durante uma requisição. Use o Object Storage para servir um site estático, guardar os ativos que uma aplicação entrega, receber uploads dos seus usuários ou coletar os dados que um stream produz.
Primeiros passos Guias do Object StorageO bucket e o objeto
Um bucket é criado com um nome e um nível de acesso. Nada mais é configurado, e o bucket fica pronto assim que a requisição retorna:
Um objeto é gravado nele por chave, com o conteúdo no corpo da requisição:
nameé único entre todas as contas Azion, tem de 6 a 63 caracteres e não pode ser alterado depois.workloads_accessdecide o que a plataforma da Azion pode fazer com os objetos quando uma aplicação os serve. Não restringe a API da Azion nem o protocolo S3.- A chave do objeto é o endereço inteiro. O segmento
assets/faz parte da chave, e não é uma pasta que precisasse existir antes. - O content type armazenado vem do cabeçalho
Content-Type. Sem esse cabeçalho, a Azion detecta o tipo.
Se você já usou um serviço compatível com S3, o modelo se aplica: os mesmos buckets e objetos respondem a requisições S3 assinadas com uma credencial que você cria.
Como uma requisição chega a um objeto
Um objeto responde a três tipos de chamador, e cada um se autentica de um jeito:
Criar um bucket não expõe nada. Até que um connector nomeie o bucket e uma regra envie requisições para ele, os objetos só são alcançáveis por um chamador que tenha um personal token ou uma credencial S3. Esse é o passo que a maioria das primeiras configurações esquece.
O endpoint S3 é uma interface de gerenciamento, dimensionada para criar, listar e remover objetos, e não para servir tráfego. Os usuários finais alcançam os objetos por meio de uma aplicação, onde o Cache mantém uma cópia e as regras da própria aplicação se aplicam.
O que o Object Storage abrange
- Interfaces. Azion Console, a API da Azion v4, a Azion CLI, o Azion Runtime, a biblioteca
azione o protocolo S3. Todas as seis alcançam os mesmos buckets. - Compatibilidade com S3. Dezesseis operações S3, assinadas com um access key e um secret key que você cria como credencial, limitada aos buckets e às capabilities que você indicar. Ferramentas e SDKs S3 existentes se conectam a
s3.us-east-005.azionstorage.net. - Níveis de acesso.
read_only,read_writeerestricteddecidem o que a plataforma pode fazer quando uma aplicação serve um bucket. - Entrega. Um Connector do tipo Object Storage, com uma regra do Rules Engine, coloca um bucket atrás de um domínio. Um prefixo no connector decide onde começa o caminho da aplicação.
- Limites. Nomes de bucket têm de 6 a 63 caracteres e são únicos entre todas as contas Azion; uma chave de objeto tem até 1.024 caracteres; uma listagem retorna até 1.000 chaves por página; um bucket só é excluído quando não guarda objetos e nenhum foi removido dele nas últimas 24 horas. O armazenamento e as operações são incluídos por plano. Para cada limite, consulte Limites do Object Storage.
- Região. Os objetos são armazenados em
us-east-005, e a região não é selecionável. - O que ele não faz. O Object Storage não versiona objetos: gravar em uma chave substitui o conteúdo, e a versão anterior não pode ser recuperada. Ele guarda arquivos não estruturados em vez de registros, então consulte-os pelo seu próprio código, ou use o SQL Database para dados relacionais e o KV Store para pares de chave e valor.