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 Storage

Consulte 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.

  1. Acesse o Console: Navegue até o menu Object Storage.
  2. 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.
  1. 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.

  1. Crie um token para acesso no menu Personal token no Azion Console: https://console.azion.com/personal-tokens.

  2. Criar um bucket chamado statics_test.

Terminal window
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"
}'
  1. Upload de objetos.
Terminal window
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
  1. Listar objetos.
Terminal window
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:

Terminal window
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:

  1. Accesse o Azion Console > Functions.
  2. Clique no botão Add Function.
  3. Dê um nome a sua função. Exemplo: my-bucket POST+GET.
  4. 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ávelDescrição
pathCaminho do objeto. Exemplo: ./path/file.csv
bucket_nameNome do bucket. Exemplo: my-bucket
content_typeMIME type do objeto. Exemplo: text/csv
valueConteúdo do objeto em data binary
  1. Na aba Arguments, adicione o objeto com a propriedade bucket e, como valor, o nome do bucket em string.
{
"bucket": "my-bucket"
}
  1. 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.

  1. Acesse o Azion Console.
  2. Selecione a opção Start with a template na página inicial.
  3. Selecione a opção Build from scratch.
  4. Dê um nome fácil de lembrar para a sua aplicação. Exemplo: my-bucket Proxy.
  5. Selecione a opção Run a Function.
  6. Em Choose Function, selecione a function que você criou nos passos anteriores.
  7. Clique no botão Next.
  8. Copie o link da application. Ele deve estar no formato http://xxxxxxxxxx.map.azionedge.net.
  9. 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
  1. 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-bucket

O download do objeto deve ocorrer na pasta onde as requisições estão sendo executadas.