AutenticaĆ§Ć£o

Muitas (mas não todas) das operações disponibilizadas na API do UOL Cloud Storage necessitam de autenticação prévia para poderem ser realizadas, em especial aquelas que criam, excluem ou alteram arquivos e configurações do UOL Cloud Storage. Para realizar essa autenticação, uma invocação à API REST do UOL Cloud Storage deve ser realizada por meio de uma requisição HTTPS do tipo GET com o caminho https://api.uolos.com.br/auth/v1.0, tal como demonstrado no exemplo abaixo:

1. Requisição HTTP para a realização da autenticação:

GET https://api.uolos.com.br/auth/v1.0 HTTP/1.1
X-Auth-User: 123abc456:uol
X-Auth-Key: xYz890BcD765gHi321

Tal como demonstrado no exemplo, a URL de destino da requisição deve ser https://api.uolos.com.br/auth/v1.0 para o autenticação, além dos cabeçalhos HTTP: X-Auth-User e X-Auth-Key com valores para a chave de acesso (ou Acces Key que terá sempre o sufixo :uol) e a respectiva senha (Secret Key). O valor da chave de acesso e da senha podem ser visualizados na tela de gerenciamento do UOL Cloud Storage. Caso seja necessário, a senha também poderá ser alterada nesta mesma tela.

Alternativamente, para manter compatibilidade com alguns programas clientes, os cabeçalhos HTTP X-Storage-User e X-Storage-Pass podem ser usados em lugar dos cabeçalhos X-Auth-User e X-Auth-Key.

GET https://api.uolos.com.br/auth/v1.0 HTTP/1.1
X-Storage-User: 123abc456:uol
X-Storage-Pass: xYz890BcD765gHi321

Após a realização da chamada HTTPS da requisição, uma resposta será recebida tal como no exemplo abaixo:

2. Resposta HTTPS para a realização da autenticação:

HTTP/1.1 200 OK
Date: Sun, 01 Set 2013 15:32:21 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: keep-alive
Server: UOLOS-1.0.6
X-Storage-Url: https://api.uolos.com.br/v1/UOL_123abc456
X-Auth-Token: UOL_qwe123asd456zxc789ewq321dsa654cxz987
X-Storage-Token: UOL_qwe123asd456zxc789ewq321dsa654cxz987

Tal como demonstrado no exemplo, quando a autenticação é feita com sucesso, um status HTTP 200 é retornado e a resposta conterá os cabeçalhos X-Storage-Url, X-Auth-Token e X-Storage-Token. Qualquer resposta com status 2xx é uma resposta que indica o sucesso da requisição. Um status HTTP 401 é devolvido se a senha estiver incorreta. Um status HTTP 400 é devolvido se a chave de acesso estiver incorreta, mal-formada ou inativa.

Após a etapa de autenticação ser realizada com sucesso, todas as invocações subsequentes devem ser realizadas para a URL e caminhos especificada no cabeçalho X-Storage-Url e devem incluir o cabeçalho X-Auth-Token na requisição com o valor informado na resposta da autenticação. Para manter a compatibilidade com alguns programas clientes, o cabeçalho X-Storage-Token também pode ser utilizado em lugar do cabeçalho X-Auth-Token.

As operações posteriores à etapa de autenticação seriam enviadas para o caminho /v1/UOL_123abc456, da URL api.uolos.com.br, por meio de HTTP. No UOL Cloud Storage o valor do cabeçalho X-Storage-Url sempre será https://api.uolos.com.br/v1/UOL_123abc456. Além disso, cada requisição posterior deverá também enviar o cabeçalho X-Auth-Token (ou alternativamente X-Storage-Token) com o valor informado no cabeçalho X-Auth-Token da resposta da autenticação. É importante observar-se que esse token de autenticação é válido por um período de 24 horas.

Veja, a seguir, alguns exemplos de requisições.

3. Exemplo de uma requisição autenticada para baixar um arquivo:

GET https://api.uolos.com.br/v1/UOL_123abc456/container-exemplo/arquivo-exemplo.txt HTTP/1.1
X-Auth-Token: UOL_qwe123asd456zxc789ewq321dsa654cxz987

Neste exemplo, nota-se que a parte do caminho https://api.uolos.com.br/v1/UOL_123abc456 utilizado na requisição autenticada é extraído do cabeçalho X-Storage-Url. Nota-se também que o cabeçalho X-Auth-Token informado na requisição tem o mesmo valor da resposta do cabeçalho X-Auth-Token recebido na resposta da autenticação.

Caso o container, ou pasta, onde o arquivo se encontra for configurada como público (ver documentação "container público") não e necessário informar o cabeçalho X-Auth-Token, e o protocolo HTTPS é opcional.

GET http://api.uolos.com.br/v1/UOL_123abc456/container-exemplo/arquivo-exemplo.txt HTTP/1.1

ou

GET https://api.uolos.com.br/v1/UOL_123abc456/container-exemplo/arquivo-exemplo.txt HTTP/1.1