Edge Storage

O Edge Storage da Azion é um serviço de armazenamento escalável e seguro projetado para integrar o armazenamento de objetos com a Plataforma de Edge da Azion usando o padrão S3 para operações de objetos.

O Edge Storage permite que você crie buckets, que podem ser usados como origens para edge applications ou como diretórios para upload de objetos em tempo real. Além da criação de buckets, você possui controle total sobre a alocação de armazenamento, gerenciamento de acesso a buckets e objetos, e a capacidade de fazer upload, alterar e deletar objetos.

EscopoRecursos
Criar e modificar um bucketComo criar e modificar um bucket do Edge Storage
Upload e download de objetosComo fazer o upload e download de objetos de um bucket do Edge Storage
Usar bucket como origemComo usar um bucket do Edge Storage como origem de uma edge application estática
Configurar o protocolo S3Como acessar um bucket do Edge Storage usando o protocolo S3
Runtime APIEdge Storage API

Os buckets são o sistema utilizado para organizar objetos, ou arquivos, armazenados. Semelhantes a pastas, os buckets são contêineres de nível superior para armazenar objetos. Buckets podem ser criados usando a API da Azion.

Todos os buckets criados com o Edge Storage da Azion são armazenados no servidor de nuvem us-east.

Nomes de buckets são exclusivos dentre todas as contas Azion. Os nomes devem ter entre 6 e 63 caracteres e não podem começar com azion. São aceitos caracteres alfanuméricos e hífen (-).

As melhores práticas para nomear buckets incluem especificar que tipos de objetos são armazenados e o tipo de permissões para os objetos. Por exemplo, um bucket para uma edge application Banking App em modo somente leitura (read-only) poderia ser nomeado banking-app-ro.


Objetos, ou arquivos, podem ser enviados, modificados, baixados e removidos dos buckets por meio da Azion REST API, do Edge Runtime e do protocolo S3.

Uma object key é uma string de caracteres que compõe identificador de objetos armazenados em buckets do Edge Storage. Por meio das ferramentas disponíveis, os usuários podem recuperar um arquivo armazenado em um bucket usando sua chave de objeto.

Não é obrigatório que a object key corresponda ao caminho do arquivo original ou nome do armazenamento local de onde ele foi retirado, nem que contenha a extensão original do arquivo. No entanto, ao fazer o upload de um arquivo local para um bucket, é recomendado que o nome do arquivo corresponda à object key para que ele se encaixe às convenções do armazenamento local. Por exemplo, para o arquivo local pasta/arquivo.png, a object key deve ser a mesma.

A object key não pode ser alterada. Fazer o upload de um objeto diferente ou modificar o conteúdo de um objeto usando uma chave existente substitui o objeto. Uma vez que um objeto é substituído, versões anteriores não podem ser recuperadas.

Um prefixo é uma combinação de caminhos que simulam uma hierarquia de pastas. Como os buckets não podem ser organizados em pastas, você pode usar a barra (/) ao criar chaves para categorizar objetos do seu bucket em um prefixo.

Por exemplo, a lista de keys abaixo mostra a hierarquia simulada de uma aplicação armazenada em um bucket com prefixes:

Terminal window
README.md
src/index.js
src/index.html
src/assets/styles.css
src/assets/images/image.png

O objeto README.md está localizado na raiz do bucket. O prefix src corresponde a uma pasta e contém os objetos index.js e index.html. Além disso, o prefix src/assets contém um objeto styles.css e o prefix src/assets/images, por sua vez, contém o objeto image.png.

O upload de um objeto diferente ou a modificação do conteúdo do objeto usando uma key existente substitui o objeto. Depois que um objeto é substituído, as versões anteriores não podem ser recuperadas.

Com Edge Storage, você pode usar buckets como uma origin na Edge Application da Azion para retirar o conteúdo de uma edge application.

Você pode determinar se o conteúdo é retirado da raiz do bucket ou de um prefix dentro do bucket.


Uma operação se refere a uma troca entre um cliente e o Edge Storage. Qualquer ação a buckets e objetos, como criar, excluir, listar e atualizar objetos, é considerada uma operação. Cada vez que um desses métodos é usado, tanto pela API quanto pelo protocolo S3, uma operação é registrada.

Todas as operações estão disponíveis na documentação da API da Azion.

A versão atual do Edge Storage oferece as seguintes operações:

ClasseNome da operaçãoMétodo HTTPCapability S3
AList ObjectsGETlistFiles
listBuckets*
ACreate BucketPOST
AList BucketsGETlistAllBucketNames
AUpdate BucketPATCH
BGet ObjectGETreadFiles
CPost ObjectPOST
CPut ObjectPUTwriteFiles
CDelete ObjectDELETEdeleteFiles
CDelete BucketDELETE

* Se listBuckets estiver habilitado, ao tentar recuperar arquivos que não estão no bucket usando uma credencial S3, a resposta de status correta 404 Not Found é retornada em vez do status 403 Forbidden. Saiba mais sobre as capabilities do S3 em Compatibilidade com protocolo S3.

Faz upload de um objeto em um bucket.

Com a API da Azion, você pode especificar o MIME type do objeto sendo enviado no corpo da requisição com o cabeçalho Content-Type. Por exemplo, objetos com extensão .txt devem conter o cabeçalho Content-Type: text/plain. Se o MIME type não for especificado, o Edge Storage tentará interpretar o tipo de arquivo com base na extensão do arquivo. Como alternativa, utilize o MIME type application/octet-stream para indicar que os dados são um fluxo binário e o servidor deve tratá-los como dados binários brutos.

Ao enviar um novo objeto com uma object key já existente no bucket, o objeto anterior será substituído.

Faz upload de um objeto em um bucket.

Ao enviar um objeto com uma object key já existente no bucket, o objeto anterior será substituído.

Remove um objeto de um bucket.

Quando você remove um objeto de um bucket que está sendo servido na edge, ele imediatamente para de ser servido e não será mais listado no bucket.

Remove um bucket de uma conta.

Buckets que contêm objetos não podem ser deletados. Após remover o último objeto de um bucket, é necessário aguardar 24 horas antes que o bucket possa ser removido da conta.

Recupera um objeto de um bucket

Recupera uma lista de objetos carregados em um bucket.

Essa operação retorna detalhes de todos os objetos no bucket, incluindo o tamanho em bytes e o timestamp da última modificação.

Recupera uma lista de buckets associados à uma conta.

Cria um novo bucket para uma conta.

Modifica informações do bucket.

Essa operação pode ser usada para alterar as permissões de acesso aos objetos do bucket. Buckets não podem ser renomeados com essa operação.


Ações envolvendo buckets, como fazer upload, listar e excluir objetos, sempre exigem autenticação pela conta Azion.

Você pode gerenciar dois tipos de permissões para seus buckets e objetos:

  • Permissões de bucket: gerencie o acesso do edge e de outros usuários aos buckets e objetos dentro dos buckets usando a API da Azion.
  • Credenciais S3: gerencie o acesso para usuários da conta Azion por meio de capabilities e atribua permissões de operação exclusivas ao acesso pelo protocolo S3.

Além da autenticação e permissões necessárias, algumas operações são restritas pelas permissões do bucket. As permissões disponíveis são:

  • Read-only: objetos no bucket podem ser lidos, mas não modificados.
  • Read-write: objetos no bucket podem ser modificados.
  • Restricted: objetos no bucket podem ser modificados e lidos, mas não podem ser acessados pela Plataforma de Edge da Azion. Isso significa que os buckets não podem ser modificados usando Edge Runtime e não pode ser usado como origem para edge applications.

Edge Storage oferece compatibilidade com o protocolo S3 por meio de credenciais.

Credenciais podem ser criadas para qualquer bucket que você possua ou para sua conta como um todo para gerenciar todos seus buckets. Com elas, você pode controlar permissões para operações associadas a essa credencial. As permissões para a credencial são exclusivas para acesso através do protocolo S3.

Para criar uma credencial S3, você deve usar um personal token da Azion e executar uma requisição POST via API. No entanto, após a credencial ser criada, ela funciona independentemente do seu token Azion. Dessa forma, mesmo que o token expire, a credencial permanece válida.

Uma vez que uma credencial é criada, uma access key e uma secret key são geradas, as quais podem ser usadas para configurar o acesso ao bucket através do protocolo S3. Por razões de segurança, a secret key não estará disponível após a criação da credencial. Credenciais existentes não podem ser modificadas.

Uma vez que o acesso de um usuário é verificado, ele estará autorizado a realizar operações dependendo das capabilities e permissões definidas para a credencial.

Você pode atribuir as seguintes capabilities às credenciais S3:

  • listFiles: equivalente a ListObjects, retorna uma lista de objetos dentro do bucket.
  • readFiles: equivalente a GetObject, retorna um objeto do bucket através da object key.
  • writeFiles: equivalente a PutObject, permite modificar arquivos no bucket através da object key.
  • deleteFiles: equivalente a DeleteObject, permite a exclusão de objetos através da object key.
  • listAllBucketNames: equivalente a ListBuckets, permite que você liste todos os buckets associados à conta.
  • listBuckets: se habilitado, retorna a resposta de status 404 Not Found correta ao tentar recuperar arquivos que não estão no bucket usando a credencial.

Após a criação de uma credencial S3 para um bucket, você pode usar o protocolo S3 (s3://) para executar operações de acordo com a lista de capabilities.

O protocolo S3 permite acessar buckets e objetos usando a URL de Edge Storage. Esta configuração facilita operações de objetos através de ferramentas de interface de linha de comando (CLI), como s3cmd, serviços de banco de dados ou funções.

Você pode usar a access key e secret key fornecidas pela API de credenciais S3 para configurar uma conexão usando o protocolo S3.

Para fazer isso, você precisará das seguintes informações:

DadoDescrição
Access keyA access key da credencial gerada ao criar a credencial S3 com a API da Azion
Secret keyA secret key da credencial gerada ao criar a credencial S3 com a API da Azion. Esta informação é confidencial e só estará disponível no momento da criação
RegiãoA região do servidor atribuída, que é us-east-005
Endpoint S3O endereço S3 padrão para todas as operações, que é s3.us-east-005.azionstorage.net
Template de estilo DNSO modelo de host name para acessar o bucket e os objetos. Pode ser bucket+hostname:port/object-key ou hostname:port/bucket.

Por exemplo, para um objeto file.txt no bucket my-bucket, os host names seriam:
    • my-bucket.s3.us-east-005.azionstorage.net/file.txt
      s3.us-east-005.azionstorage.net/my-bucket/file.txt

  • Estes são os limites default:

    EscopoLimite
    Buckets100 por conta
    Regiãous-east
    Access keys para credenciais S3100.000 por conta

    Contribuidores