Edge Storage
Preview
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.
Implementação
Escopo | Recursos |
---|---|
Criar e modificar um bucket | Como criar e modificar um bucket do Edge Storage |
Upload e download de objetos | Como fazer o upload e download de objetos de um bucket do Edge Storage |
Usar bucket como origem | Como usar um bucket do Edge Storage como origem de uma edge application estática |
Configurar o protocolo S3 | Como acessar um bucket do Edge Storage usando o protocolo S3 |
Runtime API | Edge Storage API |
Buckets
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
Objetos, ou arquivos, podem ser enviados, modificados, baixados e removidos dos buckets por meio da Azion REST API, do Azion Runtime e do protocolo S3.
Object key
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.
Prefix
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:
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.
Origem
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.
Operações
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:
Classe | Nome da operação | Método HTTP | Capability S3 |
---|---|---|---|
A | List Objects | GET | listFiles listBuckets * |
A | Create Bucket | POST | – |
A | List Buckets | GET | listAllBucketNames |
A | Update Bucket | PATCH | – |
B | Get Object | GET | readFiles |
C | Post Object | POST | – |
C | Put Object | PUT | writeFiles |
C | Delete Object | DELETE | deleteFiles |
C | Delete Bucket | DELETE | – |
* Se
listBuckets
estiver habilitado, ao tentar recuperar arquivos que não estão no bucket usando uma credencial S3, a resposta de status correta404 Not Found
é retornada em vez do status403 Forbidden
. Saiba mais sobre as capabilities do S3 em Compatibilidade com protocolo S3.
PostObject
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.
PutObject
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.
DeleteObject
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.
DeleteBucket
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.
GetObject
Recupera um objeto de um bucket
ListObjects
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.
ListBuckets
Recupera uma lista de buckets associados à uma conta.
CreateBucket
Cria um novo bucket para uma conta.
UpdateBucket
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.
Autenticação e permissões
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.
Permissões de bucket
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 Azion Runtime e não pode ser usado como origem para edge applications.
Credenciais S3
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.
Capabilities
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 status404 Not Found
correta ao tentar recuperar arquivos que não estão no bucket usando a credencial.
Compatibilidade com protocolo S3
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.
Saiba Como acessar o Edge Storage usando o protocolo S3Para fazer isso, você precisará das seguintes informações:
Dado | Descrição |
---|---|
Access key | A access key da credencial gerada ao criar a credencial S3 com a API da Azion |
Secret key | A 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ão | A região do servidor atribuída, que é us-east-005 |
Endpoint S3 | O endereço S3 padrão para todas as operações, que é s3.us-east-005.azionstorage.net |
Template de estilo DNS | O 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 |
Limites
Estes são os limites default:
Escopo | Limite |
---|---|
Buckets | 100 por conta |
Região | us-east |
Access keys para credenciais S3 | 100.000 por conta |