# Uploads

## Realizando uploads via Dashboard

Na página do projeto em sua dashboard, clique na aba "Storage" e, em seguida no botão "Enviar novos arquivos". Após o upload ter sido concluído, você pode copiar a URL da imagem para acessar a mesma.

## Realizando uploads via API

Estamos trabalhando para desenvolver SDKs para diferentes linguagens, no entanto o [Widget de Upload](/docs/widgets.md#widget-de-upload) pode não ser o suficiente para você Nesse caso você pode usar nossa API Rest diretamente dentro de sua aplicação.

### Upload de arquivo local

#### Endpoint

`POST https://filesquash.io/v1/assets`

#### Headers

* **Content-Type** - Deve ser `multipart/form-data`.
* **Authorization** - Deve ser `Token token=api_token`.

#### **Parâmetros**

* **asset\[file]** - O caminho completo do arquivo, precedido de `@`.

#### Resposta de sucesso

Repostas de sucesso são normalmente devolvidas com a seguinte estrutura (JSON):

```javascript
{
  "data": {
    "uuid": "d117fce2-e170-4921-8e5a-a1570bc02720",
    "api-url": "http://filesquash.io/v1/5a056b73/assets/d117fce2-e170-4921-8e5a-a1570bc02720",
    "original-filename": "meme-quero.jpg",
    "size": 39771,
    "mime-type": "image/jpeg",
    "extension": "jpg",
    "creation-time": 1484145315
  }
}
```

#### Exemplo de uso

```
curl \
  -H "Authorization: Token token=YOUR_API_TOKEN" \
  -F asset[file]=@/Users/leandro/Downloads/meme-quero.jpg https://filesquash.io/v1/assets
```

### Upload via URL

#### Endpoint

`POST https://filesquash.io/v1/assets/from-url/:external_url`

#### Headers

* **Authorization** - Deve ser `Token token=api_token`.

#### **Parâmetros da URL**

* **external\_url** - A URL do arquivo remoto. Por ora, é **obrigatório** escapar/codificar a URL.

#### Reposta de erro

* Se você, por exemplo, informar uma URL inválida (sem o `http://` ou `https://`), você obterá o seguinte erro:

```javascript
{
  "errors": ["Invalid URL"]
}
```

* Se você tentar informar uma URL cujo o arquivo possui um tamanho superior ao suportado pela aplicação (50MB), você obterá o seguinte erro:

```javascript
{
  "errors": ["File size (52729800) is bigger than supported limit (52428800)"]
}
```

#### Resposta de sucesso

Repostas de sucesso são normalmente devolvidas com a seguinte estrutura (JSON):

```javascript
{
  "data": {
    "uuid": "d117fce2-e170-4921-8e5a-a1570bc02720",
    "api-url": "http://filesquash.io/v1/5a056b73/assets/d117fce2-e170-4921-8e5a-a1570bc02720",
    "original-filename": "l3q2LH45XElELRzRm.gif",
    "size": 500859,
    "mime-type": "image/gif",
    "extension": "gif",
    "creation-time": 1484145315
  }
}
```

#### Exemplo de uso

```
curl \
  -XPOST -H "Authorization: Token token=YOUR_API_TOKEN" \
  https://filesquash.io/v1/assets/from-url/http%3A%2F%2Fi.giphy.com%2Fl3q2LH45XElELRzRm.gif
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://filesquash.gitbook.io/docs/uploads.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
