# Como excluir um objeto de um bucket do Object Storage

Este guia descreve o processo de exclusão de um objeto de um bucket do Object Storage usando o [Console](https://console.azion.com/object-storage), a [API da Azion](https://api.azion.com/), a [CLI da Azion](/pt-br/documentacao/produtos/azion-cli/visao-geral/) e o [Azion Runtime](/pt-br/documentacao/runtime/api-reference/storage/).

import Tabs from '~/components/tabs/Tabs'
import DocButton from '~/components/webkit/DocButton.vue';
import Code from '~/components/Code/Code.astro'

## Deletando um objeto de um bucket

<Tabs client:visible>
    <Fragment slot="tab.console">Console</Fragment>
    <Fragment slot="tab.cli">Azion CLI</Fragment>
    <Fragment slot="tab.runtime">Azion Runtime</Fragment>
    <Fragment slot="tab.api">API</Fragment>

<Fragment slot="panel.console">

Acesse o [Console da Azion](https://console.azion.com/object-storage) e siga os passos abaixo:

    1. No menu lateral, clique em **Object Storage**.
    2. Na página Object Storage, clique no bucket que deseja.
    3. Na lista de objetos, localize o objeto que deseja excluir.
    4. Clique no Menu de Contexto (ícone de três pontinhos) do lado direito do objeto e selecione **Delete**.
    5. No popup, confirme a exclusão quando solicitado.

    ![Excluir objeto](/assets/docs/images/uploads/delete-bucket-object-console.png)

</Fragment>

<Fragment slot="panel.cli">

## Requisitos 

- [Azion CLI instalada](/pt-br/documentacao/produtos/azion-cli/visao-geral/#instalar-a-azion-cli). 
- [Um personal token configurado](/pt-br/documentacao/devtools/cli/globals/#token).

Para deletar um objeto:

```bash 
azion delete edge-storage object --bucket-name bucketname  --object-key objectname
```

</Fragment>

<Fragment slot="panel.api">

Para deletar um objeto, execute a seguinte requisição `DELETE` no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/), `<bucket_name>` pelo nome do seu bucket, e `<object_key>` pelo ID ou nome do objeto:

<Code lang="bash" code={`
curl --location --request DELETE 'https://api.azion.com/v4/storage/buckets/<bucket_name>/objects/<object_key>' \
--header 'Accept: application/json' \
--header 'Authorization: Token [TOKEN VALUE]'
`} />

Você deve receber a seguinte resposta:

```json
{
  "state": "executed",
  "data": {
    "object_key": "people-100.txt"
  }
}
```

</Fragment>

<Fragment slot="panel.runtime">

Você pode criar uma function para deletar um objeto:

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Functions**.
2. Clique no botão **+ Functions**.
3. Dê um nome para sua função, por exemplo: `delete_object`.
4. Na aba **Code**, adicione o seguinte código JavaScript:

```js
import Storage from "azion:storage";

async function handleRequest(event) {
    const bucket = "mybucket";
    const storage = new Storage(bucket);
    const key = "test";
    try{
        await storage.delete(key);
    }catch(error){
        return new Response(error, {status:500});
    }
    return new Response("Ok");
}

addEventListener("fetch", (event) => {
    event.respondWith(handleRequest(event));
});
```


:::note 
Lembre-se de substituir "mybucket" pelo nome do seu bucket e "test" pela chave do objeto.
:::

5. Clique no botão **Save**.

:::note
Consulte a referência da [Object Storage API](/pt-br/documentacao/runtime/api-reference/storage/) para obter mais detalhes sobre as funções disponíveis para outros tipos de requisições.
:::

Uma vez que você tenha criado a function, você precisa criar uma application que irá fazer o proxy do processo de exclusão para o bucket e instanciar a function.

<DocButton href="/pt-br/documentacao/produtos/build/applications/primeiros-passos/" label="Primeiros passos de Applications" kind="secondary" target="_blank" size="medium" />
<DocButton href="/pt-br/documentacao/produtos/guias/build/instanciar-functions/" label="Consulte o guia de como instanciar functions" kind="secondary" target="_blank" size="medium" />

</Fragment>
</Tabs>