> For the complete documentation index, see [llms.txt](https://filesquash.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://filesquash.gitbook.io/docs/uploads.md).

# 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
```
