O Object Storage da Azion permite que você crie buckets, armazene e gerencie dados no Edge e integre seu armazenamento de objetos à sua infraestrutura de edge de forma simples — o jeito mais rápido de começar é usando o Azion Console, mas você também pode automatizar processos via API ou Azion Runtime; este guia abrange como fazer upload e download de objetos de um bucket usando o Console, a API da Azion e o Azion Runtime.
Saiba mais sobre Object StorageConsulte o guia Como criar e modificar um bucket de Object Storage da Azion para operações em buckets.
Get started em 30 segundos (via Console)
A interface gráfica é ideal para uploads rápidos e configurações iniciais.
- Acesse o Console: Navegue até o menu Object Storage.
- Crie seu Bucket: Clique em + Bucket.
- Name: Escolha um nome exclusivo.
- Workloads Access: Selecione como a rede da Azion acessará os dados. Recomendamos Read Only para servir conteúdo estático.
- Faça o Upload: Entre no bucket criado e arraste seus arquivos diretamente para a interface ou use o botão de upload.
Pronto! Seus arquivos agora estão na infraestrutura global da Azion. O próximo passo é configurar um Workload para entregar esse conteúdo com performance de Edge.
Via API
O Object Storage da Azion é totalmente exposto via API v4 da Azion. O Azion Console consome essas APIs, portanto todas as ações disponíveis no Console podem ser executadas diretamente via API, permitindo automação completa.
Isso permite integrar o Object Storage a pipelines de CI/CD, rotinas automatizadas e aplicações, sem dependência da interface gráfica.
-
Crie um token para acesso no menu Personal token no Azion Console: https://console.azion.com/personal-tokens.
-
Criar um bucket chamado
statics_test.
curl --request POST \ --url https://api.azion.com/v4/workspace/storage/buckets \ --header 'Accept: application/json' \ --header 'Authorization: Token AZION_PERSONAL_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "name": "statics_test", "workloads_access": "read_only" }'- Upload de objetos.
curl --request POST \ --url https://api.azion.com/v4/workspace/storage/buckets/statics_test/objects/logo.svg \ --header 'Accept: application/json' \ --header 'Authorization: Token AZION_PERSONAL_TOKEN' \ --header 'Content-Type: application/octet-stream' \ --data @logo.svg- Listar objetos.
curl --request GET \ --url https://api.azion.com/v4/workspace/storage/buckets/statics_test/objects \ --header 'Accept: application/json' \ --header 'Authorization: Token AZION_PERSONAL_TOKEN'Faça download de objeto de um bucket
Para fazer o download de um objeto, execute a seguinte requisição GET em seu terminal, substituindo [TOKEN VALUE] por seu personal token, <bucket_name> pelo nome do seu bucket, e <object_key> pela chave criada para o objeto:
curl --location 'https://api.azion.com/v4/storage/buckets/<bucket_name>/objects/<object_key>' \--header 'Accept: application/json; version=3' \--header 'Authorization: Token [TOKEN VALUE]'Você agora deve ver o conteúdo do objeto em seu terminal.
Via Azion Runtime
Você pode criar uma function para fazer upload de arquivos para seu bucket usando um comando de console POST e verificar se um arquivo está disponível usando um comando de console GET. Para fazer isso:
- Accesse o Azion Console > Functions.
- Clique no botão Add Function.
- Dê um nome a sua função. Exemplo:
my-bucket POST+GET. - Na aba Code, adicione o seguinte código JavaScript:
import Storage from "azion:storage";async function doGet(path, bucket_name) { console.log(`Path: ${path}`); const storage = new Storage(bucket_name); // content is an StorageObject const asset = await storage.get(path); return new Response(await asset.arrayBuffer(), { headers: { "Content-Type": asset.contentType }, });}
async function doPost(path, content_type, value, bucket_name) { console.log(`Path: ${path}`); let options = { "Content-Type": content_type } console.log(`Options: ${options}`); const storage = new Storage(bucket_name); await storage.put(path, value, options); return new Response("Object added.");}
async function router(event) { const request = event.request; const method = request.method; const path = decodeURI(new URL(request.url).pathname); const bucket_name = event.args.bucket; if (method === "POST") { let content_type = request.headers.get("Content-Type"); let content = await request.arrayBuffer(); return doPost(path, content_type, content, bucket_name); } else if (method === "GET") { return doGet(path, bucket_name); } else { throw new Error(`Invalid method: ${method}. Expected POST or GET.`); }}addEventListener("fetch", (event) => { event.respondWith( router(event) );});| Variável | Descrição |
|---|---|
path | Caminho do objeto. Exemplo: ./path/file.csv |
bucket_name | Nome do bucket. Exemplo: my-bucket |
content_type | MIME type do objeto. Exemplo: text/csv |
value | Conteúdo do objeto em data binary |
- Na aba Arguments, adicione o objeto com a propriedade
buckete, como valor, o nome do bucket em string.
{ "bucket": "my-bucket"}- Clique no botão Save.
Após criar a function, você precisa criar uma application que vai intermediar o processo de upload para o bucket.
- Acesse o Azion Console.
- Selecione a opção Start with a template na página inicial.
- Selecione a opção Build from scratch.
- Dê um nome fácil de lembrar para a sua aplicação. Exemplo:
my-bucket Proxy. - Selecione a opção Run a Function.
- Em Choose Function, selecione a function que você criou nos passos anteriores.
- Clique no botão Next.
- Copie o link da application. Ele deve estar no formato
http://xxxxxxxxxx.map.azionedge.net. - Execute o seguinte comando em seu terminal para fazer o upload de um objeto:
curl -v http://xxxxxxxxxx.map.azionedge.net ./path/file.csv txt/csv --data-binary @./path/file.csv my-bucket- Execute o seguinte comando em seu terminal para fazer o download de um objeto:
curl -v http://xxxxxxxxxx.map.azionedge.net ./path/file.csv my-bucketO download do objeto deve ocorrer na pasta onde as requisições estão sendo executadas.