API MEO Cloud para programadores
Construa a sua própria cloud
Autenticação
Se já desenvolveu alguma aplicação que integre com o Facebook, Twitter ou Flickr, certamente já teve de lidar com alguma das versões do OAuth. OAuth é o protocolo que deve usar para autenticar todos os pedidos feitos à API da MEO Cloud. Uma pesquisa rápida irá revelar inúmeras classes e bibliotecas que implementam este protocolo. Na MEO Cloud usamos a especificação 1.0a three-legged oauth, ou a 2.0. Não vale a pena reinventar a roda. Recomendamos que use aquela com que se sinta mais familiarizado.
Para usar OAuth, em primeiro lugar precisa registar a sua aplicação. Ao registar, ser-lhe-á fornecida uma consumer key e um secret necessários para assinar os pedidos à API. A consumer key identifica univocamente a sua aplicação perante a MEO Cloud.
Dado que o nome dos ficheiros consta muitas vezes da path dos URLs, é imprescindível que seja feito um correcto encoding para que a assinatura OAuth seja validada. Em particular, os caracteres '#', '%' e ';' muitas vezes causam problemas por não serem escapados pelas libs usadas. No componente path de um URL estes caracteres excluídos (e o delimitador) têm de ser escapados.
Ok, ok. Já sei disso tudo! Digam-me quais são os endpoints.
OAuth 1.0a
Request Token:
https://meocloud.pt/oauth/request_token
Authorize Token:
https://meocloud.pt/oauth/authorize
Access Token:
https://meocloud.pt/oauth/access_token
OAuth 2.0
Authorize:
https://meocloud.pt/oauth2/authorize
Token:
https://meocloud.pt/oauth2/tokenVoltar ao topo
Encoding
Se o pedido que está a fazer usar uma string (ex: nome de um ficheiro ou pasta), então deve ser codificado em UTF-8.
Voltar ao topoCódigos de erro
A nossa API fala HTTPS pelo que responde com HTTP Status Codes. Já os deve conhecer todos de cor mas ainda assim aqui fica um exemplo:
200 - OK
400 - BAD REQUEST 401 - UNAUTHORIZED 403 - FORBIDDEN 404 - NOT FOUND 405 - METHOD NOT ALLOWED 406 - NOT ACCEPTABLE 500 - INTERNAL SERVER ERROR 507 - OVER QUOTAVoltar ao topo
Transporte
Todos os pedidos quer à API, quer a OAuth endpoints e API-Content são feitos usando SSL.
Voltar ao topoAPI Endpoints
API:
https://api.meocloud.pt
API-CONTENT:
https://api-content.meocloud.pt
Lembre-se de que uma vez que usamos OAuth, a sua classe/biblioteca de OAuth irá automaticamente adicionar vários parâmetros ao pedido original contendo os tokens e assinatura
Permissões
No registo da aplicação existem dois modos de acesso que podem ser escolhidos, e isto será reflectido na página de autorização vista pelo utilizador:
sandbox: acesso restrito a uma pasta que será criada na área do utilizador
meocloud: acesso sem restrições a toda a área do utilizador
Metadata
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Devolve toda a metadata existente relativa a um ficheiro ou pasta.
https://api.meocloud.pt/1/Metadata/[meocloud|sandbox]/[pathname]
Métodos permitidos
GET
Parâmetros
file_limit: Como medida de proteção, este método não devolve mais do que 10,000 entradas. Este parâmetro permite-lhe especificar um valor diferente do default 10,000.
hash: Ao usar /Metadata para obter informação relativa a uma pasta, ser-lhe-á devolvido um valor no campo hash. Ao invocar este método de novo, pode passar este parâmetro e receber uma resposta simples (HTTP code 304) informando de que nada foi alterado.
list: (booleano), default True. Quando True, ao obter metadata de uma pasta, este método incluirá o conteúdo da pasta na resposta.
include_deleted: (booleano) Permite escolher se os ficheiros e pastas apagados são incluídos na resposta.
rev: Use este parâmetro para solicitar a metadata de uma versão específica da pasta ou ficheiro.
Exemplo de pedido
GET /1/Metadata/meocloud/stuff/Téstâção?list=true
Exemplo de resposta
{ "hash": "36a8306b-1a13-11e2-859b-3c0754179fed", "bytes": 0, "thumb_exists": false, "rev": "509fc400-2f65-11e2-9501-3c0754179fed", "modified": "Fri, 12 Oct 2012 15:36:59 +0000", "client_mtime": "Mon, 18 Jul 2011 18:04:35 +0000", "is_link": true, "path": "/stuff/Téstâção", "is_dir": true, "root": "meocloud", "contents": [ { "bytes": 209466, "thumb_exists": true, "rev": "c7061c18-17cb-11e2-85d6-0050568c00ab", "modified": "Wed, 19 Sep 2012 20:05:42 +0000", "path": "/stuff/Téstâção/1968_bizzarini_5300_gt_strada_15_sb.jpg", "is_dir": false, "icon": "image_jpg", "root": "meocloud", "mime_type": "image/jpeg", "size": "204 KB" }, { "bytes": 132280, "thumb_exists": true, "rev": "b6991d94-17cb-11e2-85d6-0050568c00ab", "modified": "Wed, 19 Sep 2012 20:05:59 +0000", "path": "/stuff/Téstâção/2522881488_3d5fd5edc9.jpg", "is_dir": false, "icon": "image_jpg", "root": "meocloud", "mime_type": "image/jpeg", "size": "129 KB" }, { "hash": "922c212e-1a0d-11e2-b542-3c0754179fed", "bytes": 0, "thumb_exists": false, "rev": "36a8306b-1a13-11e2-859b-3c0754179fed", "modified": "Fri, 12 Oct 2012 15:36:59 +0000", "path": "/stuff/Téstâção/teste", "is_dir": true, "root": "meocloud", "size": "0 bytes" } ], "size":"0 bytes" }
Erros devolvidos
304 - Conteúdo da pasta não modificado (apenas quando o parâmetro hash é passado) 406 - Demasiadas entradasVoltar ao topo
ListLinks
Compatibilidade: exclusivo MEO Cloud
Usado para obter uma lista de todas as partilhas por link criadas por um utilizador da MEO Cloud
A propriedade 'expiry' foi 'deprecated' e será removida no futuro. Utilizar a propriedade 'expires'.
https://api.meocloud.pt/1/ListLinks
Métodos permitidos
GET
Exemplo de pedido
GET /1/ListLinks
Exemplo de resposta
[ { "url": "https://meocloud.pt/link/94db8df0-02e9-43b5-b42d-93139a918853/2.jpeg", "absolute_path": "/whole/path/to/file/2.jpeg", "path": "/2.jpeg", "shareid": "94db8df0-02e9-43b5-b42d-93139a918853", "expires": "Tue, 01 Jan 2030 00:00:00 +0000", "metadata": { "bytes": 164727, "thumb_exists": true, "rev": "6ad7fe0f-2e8a-11e2-b5e0-3c0754179fed", "modified": "Thu, 20 Sep 2012 14:30:05 +0000", "path": "/2.jpeg", "is_dir": false, "icon": "image_jpg", "root": "meocloud", "mime_type": "image/jpeg", "size": "160 KB" } }, { "url": "https://meocloud.pt/link/bb26f0f6-d66f-46a7-8905-1fc125a293e7/ding_dong", "absolute_path": "/whole/path/to/file/ding_dong", "path": "/ding_dong", "shareid": "bb26f0f6-d66f-46a7-8905-1fc125a293e7", "metadata": { "hash": "a94f4b75-29b5-11e2-8670-3c0754179fed", "bytes": 0, "thumb_exists": false, "rev": "9231fe8a-2e8c-11e2-824b-3c0754179fed", "modified": "Thu, 08 Nov 2012 15:04:58 +0000", "path": "/ding_dong", "is_dir": true, "root": "meocloud", "size": "0 bytes" } } ]
Erros devolvidos
Ver acimaVoltar ao topo
ListUploadLinks
Compatibilidade: exclusivo MEO Cloud
Usado para obter uma lista de todas as pastas Upload2Me criadas por um utilizador da MEO Cloud
https://api.meocloud.pt/1/ListUploadLinks
Métodos permitidos / Exemplo de pedido / Exemplo de resposta / Erros devolvidos
Igual ao ListLinksVoltar ao topo
DeleteLink
Usado para remover um link de partilha ou de Upload2Me de uma pasta ou ficheiro
https://api.meocloud.pt/1/DeleteLink
Métodos permitidos
POST
Parâmetros
shareid: Obrigatório. O ID do link a remover
Exemplo de pedido
POST /1/DeleteLink Post fields: shareid=bb26f0f6-d66f-46a7-8905-1fc125a293e7
Exemplo de resposta
{ }Voltar ao topo
UploadLink
Compatibilidade: exclusivo MEO Cloud
Usado para criar um link Upload2Me para uma pasta
A propriedade 'link_shareid' foi 'deprecated' e será removida no futuro. Utilizar a propriedade 'shareid'.
https://api.meocloud.pt/1/UploadLink/[meocloud|sandbox]/[pathname]
Métodos permitidos
POST
Exemplo de pedido
POST /1/UploadLink/meocloud/Documents/pasta_teste Post fields: ttl=86400
Exemplo de resposta
{ "url": "https://meocloud.pt/link/694080a6-c19d-49ae-9912-68d6638f4f92/pasta_teste", "expires": "Thu, 09 Nov 2012 18:04:58 +0000", "shareid": "694080a6-c19d-49ae-9912-68d6638f4f92" }
Erros devolvidos
Ver acimaVoltar ao topo
SetLinkTTL
Compatibilidade: exclusivo MEO Cloud
Usado para configurar um tempo de vida para um link.
https://api.meocloud.pt/1/SetLinkTTL
Métodos permitidos
POST
Exemplo de pedido
POST /1/SetLinkTTL Post fields: ttl=86400 shareid=9a3c9576-37a9-40fd-8f7b-181f4da2f124
Exemplo de resposta
{ }
Erros devolvidos
Ver acimaVoltar ao topo
RemoveLinkTTL
Compatibilidade: exclusivo MEO Cloud
Usado para remover o tempo de vida para um link.
https://publicapi.meocloud.pt/1/RemoveLinkTTL
Métodos permitidos
POST
Exemplo de pedido
POST /1/RemoveLinkTTL Post fields: shareid=9a3c9576-37a9-40fd-8f7b-181f4da2f124
Exemplo de resposta
{}
Erros devolvidos
Ver acimaVoltar ao topo
SetLinkPasswd
Compatibilidade: exclusivo MEO Cloud
Usado para definir uma senha de acesso para um link de partilha.
https://publicapi.meocloud.pt/1/SetLinkPasswd
Métodos permitidos
POST
Exemplo de pedido
POST /1/SetLinkPasswd Post fields: passwd=somepasswd shareid=9a3c9576-37a9-40fd-8f7b-181f4da2f124
Exemplo de resposta
{}
Erros devolvidos
Ver acimaVoltar ao topo
RemoveLinkPasswd
Compatibilidade: exclusivo MEO Cloud
Usado para remover a senha associada a um link de partilha.
https://publicapi.meocloud.pt/1/RemoveLinkPasswd
Métodos permitidos
POST
Exemplo de pedido
POST /1/RemoveLinkPasswd Post fields: shareid=9a3c9576-37a9-40fd-8f7b-181f4da2f124
Exemplo de resposta
{}
Erros devolvidos
Ver acimaVoltar ao topo
ShortenLinkURL
Compatibilidade: exclusivo MEO Cloud
Usado para obter um link de partilha mais curto.
https://api.meocloud.pt/1/ShortenLinkURL
Métodos permitidos
POST
Exemplo de pedido
POST /1/ShortenLinkURL Post fields: shareid=9a3c9576-37a9-40fd-8f7b-181f4da2f124
Exemplo de resposta
{ "url": "https://gbhu3u.s.cld.pt" }
Erros devolvidos
Ver acimaVoltar ao topo
DestroyShortURL
Compatibilidade: exclusivo MEO Cloud
Usado para remover link de partilha curto.
https://api.meocloud.pt/1/DestroyShortURL
Métodos permitidos
POST
Exemplo de pedido
POST /1/DestroyShortURL/gbhu3u
Exemplo de resposta
{ "share_uuid": "9a3c9576-37a9-40fd-8f7b-181f4da2f124" }
Erros devolvidos
Ver acimaVoltar ao topo
LinkDomain
Compatibilidade: exclusivo MEO Cloud
Usado para adicionar/remover um domínio próprio a um link de partilha.
https://api.meocloud.pt/1/LinkDomain
Métodos permitidos
POST / DELETE
Exemplo de pedido
POST /1/LinkDomain Post fields: shareid=9a3c9576-37a9-40fd-8f7b-181f4da2f124 domain=example.com
Exemplo de resposta
{ }
Erros devolvidos
Ver acimaVoltar ao topo
ParticipantLeavesSharedFolder
Compatibilidade: exclusivo MEO Cloud
Sai de uma pasta partilhada do qual não é o dono.
https://api.meocloud.pt/1/ParticipantLeavesSharedFolder/[meocloud|sandbox]/[pathname]
Métodos permitidos
POST
Exemplo de pedido
POST /1/ParticipantLeavesSharedFolder/meocloud/stuff/Téstâção
Exemplo de resposta
{}Voltar ao topo
RemoveParticipantFromSharedFolder
Compatibilidade: exclusivo MEO Cloud
Retira um participante de uma pasta partilhada do qual se é dono.
https://api.meocloud.pt/1/RemoveParticipantFromSharedFolder/[meocloud|sandbox]/[pathname]
Métodos permitidos
POST
Exemplo de pedido
POST /1/RemoveParticipantFromSharedFolder/meocloud/stuff/Téstâção
Parâmetros
participantid: Identificação do participante, que é devolvida pelo ListSharedFolders.
Exemplo de resposta
{}Voltar ao topo
Thumbnails
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Devolve um thumbnail em formato binário. Note que na MEO Cloud, para além das imagens existem alguns formatos adicionais com thumbnails (ex: mp3)
https://api-content.meocloud.pt/1/Thumbnails/[meocloud|sandbox]/[pathname]
Métodos permitidos
GET
Parâmetros
format: jpeg ou png
size: xs(32x32) ou s(64x64) ou m(120x120) ou l(640x480) ou xl(1024x768)
crop: true ou false
Exemplo de pedido
GET /1/Thumbnails/meocloud/Photos/Brinquedos.jpg?size=m
Resposta
O thumbnail é devolvido em formato binário
Erros devolvidos
404 Thumbnail não encontrado 415 Não foi possível gerar um thumbnailVoltar ao topo
Search
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Pesquisa a metadata dentro de um determinado path
https://api.meocloud.pt/1/Search/[meocloud|sandbox]/[pathname]
Métodos permitidos
GET and POST
Parâmetros
query: A string de pesquisa (mínimo 3 caracteres, máximo 20)
mime_type: O mime type do(s) ficheiro(s) a pesquisar
file_limit: Default = 1,000. Indica o limite de respostas.
include_deleted: (booleano) Indica se devem ser incluídos os ficheiros apagados nos resultados da pesquisa.
Exemplo de pedido
GET /1/Search/meocloud/Public?query=test
Exemplo de pedido por mime type
GET /1/Search/meocloud/Public?mime_type=image/jpeg
Exemplo de resposta
[{ "bytes": 2055, "thumb_exists": false, "rev": "51ceb3ca-31dd-11e2-a0bf-e0db550199f4", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "path": "/Public/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }]
Erros devolvidos
Ver acimaVoltar ao topo
Revisions
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Este método permite obter informação relativa às versões anteriores de um ficheiro. Atenção que existe um limite de 30 dias para cada versão, até um máximo de 7.
https://api.meocloud.pt/1/Revisions/[meocloud|sandbox]/[pathname]
Métodos permitidos
GET
Parâmetros
rev_limit: Limite do número de versões devolvido
Exemplo de pedido
GET /1/Revisions/meocloud/Public/test.js?rev_limit=4
Exemplo de resposta
[{ "bytes": 2072, "thumb_exists": false, "rev": "cdc0e31c-31e8-11e2-b300-e0db5501ca40", "modified": "Mon, 19 Nov 2012 01:31:06 +0000", "path": "/Public/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }, { "bytes": 2055, "thumb_exists": false, "rev": "51ceb3ca-31dd-11e2-a0bf-e0db550199f4", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "path": "/Public/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }, { "bytes": 2055, "thumb_exists": false, "rev": "8132a132-31d6-11e2-927c-e0db5501ca40", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "path": "/Public/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }, { "bytes": 2055, "thumb_exists": false, "rev": "7f776b2a-31d6-11e2-98bc-e0db550199f4", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "path": "/Public/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }]
Erros devolvidos
406 Demasiadas entradas a devolverVoltar ao topo
Restore
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Use este método para repor uma determinada versão de um ficheiro.
https://api.meocloud.pt/1/Restore/[meocloud|sandbox]/[pathname]
Métodos permitidos
POST
Parâmetros
rev: Obrigatório. A identificação da versão específica a repor.
Exemplo de pedido
POST /1/Restore/meocloud/Public/test.js Post fields: rev=384186e2-31e9-11e2-927c-e0db5501ca40
Exemplo de resposta
{ "bytes": 2055, "thumb_exists": false, "rev": "384186e2-31e9-11e2-927c-e0db5501ca40", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "cursor": "action_restore,d75af216-d1aa-46bf-9673-6bf2d9ce7002_384256ee-31e9-11e2-927c-e0db5501ca40,event_3840937c-31e9-11e2-927c-e0db5501ca40", "path": "/Public/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }
Erros devolvidos
404 Impossível obter a revisão pedidaVoltar ao topo
Media
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Devolve um link direto para um ficheiro (sem a normal moldura de html).
https://api.meocloud.pt/1/Media/[meocloud|sandbox]/[pathname]
Métodos permitidos
POST
Exemplo de pedido
POST /1/Media/meocloud/Movies/SAPO1.mp4
Exemplo de resposta
{ "url": "https://cld.pt/download/9229c40c-0f29-41ef-bb11-b400f9416a10/SAPO1.mp4", "expires": "Mon, 19 Nov 2012 05:37:12 +0000" }
Erros devolvidos
Ver acimaVoltar ao topo
Files
Compatibilidade: com Dropbox
Este endpoint permite fazer o download ou upload de ficheiros
https://api-content.meocloud.pt/1/Files/[meocloud|sandbox]/[pathname]
Métodos usados para download
GET
Parâmetros
rev: Caso pretenda fazer download de uma versão específica do ficheiro
Exemplo de pedido
GET /1/Files/meocloud/Photos/Brinquedos.jpg
Métodos usados para upload
POST / PUT
Parâmetros
overwrite: (booleano) Determina o comportamento caso já exista o ficheiro no destino. Em caso de True, o ficheiro é reescrito. Em caso de False, o ficheiro é renomeado
parent_rev: Caso pretenda reescrever um ficheiro, envie a última versão dele neste parâmetro.
O BODY do pedido contém o ficheiro a ser enviado
Exemplo de pedido
PUT or POST /Files/meocloud/Photos/Brinquedos.jpg?overwrite=false
Erros devolvidos
404 Ficheiro ou versão não encontrados 406 Parâmetros incorretos recebidosVoltar ao topo
Delta
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Este método é útil para sincronizar alterações. Ao invocar /Delta com o parâmetro cursor, apenas as modificações ocorridas a partir da data de obtenção do cursor anterior serão listadas.
https://api.meocloud.pt/1/Delta
Métodos permitidos
POST
Parâmetros
cursor: Serve de marcador. Só as alterações ocorridas após a data de obtenção do cursor serão listadas.
Exemplo de pedido
POST /1/Delta
Exemplo de resposta
{ "has_more": true, "cursor": "1353289183.061f533a-fbe4-416f-b188-8797a349a419_0,d75af216-d1aa-46bf-9673-6bf2d9ce7002_8b76871a-2ec2-11e2-809f-e0db55018fa4,4f320e3f-ca48-4911-b5b2-813bad0e828b_0", "reset": true, "entries": [ ["/", { "hash": "e879eab4-2d8d-11e2-b317-e0db5501ca40", "bytes": 0, "thumb_exists": false, "rev": "e87a3186-2d8d-11e2-b317-e0db5501ca40", "modified": "Tue, 13 Nov 2012 12:30:28 +0000", "path": "/", "is_dir": true, "root": "meocloud", "size": "0 bytes" }], ["/sites", { "hash": "f45d9f88-2d8d-11e2-840a-e0db5501ca40", "bytes": 0, "thumb_exists": false, "rev": "f45de240-2d8d-11e2-840a-e0db5501ca40", "modified": "Tue, 13 Nov 2012 12:30:48 +0000", "path": "/Sites", "is_dir": true, "root": "meocloud", "size": "0 bytes" }], ] }
Erros devolvidos
Ver acimaVoltar ao topo
LongpollDelta
Compatibilidade: compatível com Dropbox
Um endpoint com long-polling para esperar por alterações numa conta. Em conjunto com o Delta, permite com baixa latência ser notificado de alterações numa conta. Ao contrário da maioria dos métodos, este não requer autenticação. O cursor enviado só pode ser adquirido mediante uma chamada autenticada ao Delta.
https://notifications.meocloud.pt/notifications/longpoll_delta
Métodos permitidos
GET
Parâmetros
cursor: Um cursor obtido numa chamada ao Delta.
timeout: Um inteiro, opcional, que indica um timeout em segundos. O valor por omissão é de 30, que é também o valor mínimo. O máximo é 480. O pedido irá bloquear no máximo durante intervalo de tempo, mais até 90 segundos de atraso aleatório para evitar que os clientes se sincronizem. É de notar que algumas infrastruturas de rede não suportam timeouts longos.
Exemplo de pedido
GET /notifications/longpoll_delta?cursor=xpto
Exemplo de resposta
O pedido irá bloquear até haver alterações an conta, ou o timeout ser atingido. Em ambos os casos o código HTTP da resposta será 200, e a resposta será um dicionário JSON. O valor do atributo changes indica se há alterações. Se o valor for true, deve usar-se o método Delta para obter essas alterações. Se o valor for false, o timeout foi atingido. Se presente, o valor do atributo backoff indica quantos segundos o seu código deve esperar até chamar o LongpollDelta de novo.
{"changes": false, "backoff": 60}
Erros devolvidos
400 O parametro offset não coincide com o que o servidor esperava. O corpo da resposta será um JSON semelhante ao em cima, indicando o offset correctoVoltar ao topo
LatestCursor
Compatibilidade: exclusivo MEO Cloud
Obter o cursor actual para chamadas ao Delta ou LongpollDelta.
https://api.meocloud.pt/1/LatestCursor
Métodos permitidos
GET
Exemplo de pedido
GET /1/LatestCursor
Exemplo de resposta
{ "cursor": "1395750608.de3c49cd-5625-47f3-9dea-27847af0e022_ac0020f0-94d7-11e3-a269-0050568c00ab,f035141d-0e1e-4636-8497-a4d2b0297bd3_718ef9b4-7489-11e3-a1dc-0050568c00ab,3a07f67b-d5eb-48b1-bba4-b22db1d412fb_9608d5e6-9d4a-11e3-a9af-0050568c00ab,7e11ed1e-0ab1-429c-bd77-b1eda6465cd1_56214dea-c7b8-11e2-889a-0050568c00ab,39236c8e-7468-4d82-af3b-ba9f7294c03b_dfe14ae2-4d1b-11e3-8a6c-0050568c00b1,04ffcc4b-2086-473b-9f31-91b6ea346055_195e3452-aaa9-11e3-9bd1-0050568c00ab,2c6aabfc-eb86-4456-b5a9-bb62ee0a8d00_b52ad0aa-7487-11e3-a1dc-0050568c00ab,24314b80-4b45-4a17-a9e2-00ac8c2d14e6_b0a1cfee-7490-11e3-a1dc-0050568c00ab" }
Erros devolvidos
Ver acimaVoltar ao topo
ChunkedUpload
Compatibilidade: compatível com Dropbox
Envia ficheiros grandes para a MEO Cloud em múltiplas partes. Permite também continuar um envio se este foi interrompido. Este método permite envios maiores do que aqueles permitidos pelo método Files.
Utilização típica:
- Enviar um pedido PUT para /1/ChunkedUpload com a primeira parte do ficheiro sem enviar upload_id, recebendo na resposta um upload_id.
- Enviar as outras partes do ficheiro em pedidos PUT subsequentes usando o upload_id recebido na resposta à primeira parte e enviando o offset que indica o número de bytes transferidos até agora.
- Após cada parte ter sido enviada, o servidor responde com um novo offset que representa o total de bytes transferido.
- Depois da última parte ser transferida, enviar um POST para /1/CommitChunkedUpload para completar o envio.
Cada parte pode um tamanho variável, até 150MB. O tamanho recomendado é 4MB. Usar tamanhos maiores resulta em menos chamadas à API e melhor taxa de transferência, mas caso esta seja interrompida irá ser necessário recomeçar do início da última parte enviada com sucesso. Se o offset enviado não corresponder ao offset esperado pelo servidor, este irá ignorar o pedido e responder com um erro 400 indicando o offset esperado. Para continuar, recomece o envio desse ponto no ficheiro.
Um envio por partes pode demorar um máximo de 24 horas até expirar.
https://api-content.meocloud.pt/1/ChunkedUpload
Métodos permitidos
PUT
Parâmetros
upload_id: O ID único da sessão de envio actual. Se deixado em branco o servidor irá criar uma nova sessão.
offset: O offset em bytes deste chunk, relativamente ao início do ficheiro completo. O servidor irá verificar que este offset coincide com o que ele está à espera. Se não coincidir, o servidor irá retornar um erro com o offset esperado.
O BODY do pedido contém o chunk a ser enviado
Exemplo de pedido
PUT /1/ChunkedUpload
Exemplo de resposta
{ "upload_id": "452tffffer-dscew-dewd", "offset": 12345, "expires": "Wed, 12 Jun 2013 11:51:35 +0000" }
Erros devolvidos
404 O upload_id não existe ou expirou 400 O parametro offset não coincide com o que o servidor esperava. O corpo da resposta será um JSON semelhante ao em cima, indicando o offset correctoVoltar ao topo
CommitChunkedUpload
Compatibilidade: compatível com Dropbox
Completa um upload iniciado através do método ChunkedUpload. Este método é semelhante ao Files. A grande diferença é que enquanto o Files recebe o conteúdo do ficheiro no corpo do pedido, o CommitChunkedUpload recebe um parâmetro upload_id, que é obtido quando o conteúdo do ficheiro é enviado via o ChunkedUpload.
https://api-content.meocloud.pt/1/CommitChunkedUpload/[root]/[pathname]
Métodos permitidos
POST
Parâmetros no URL
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
pathname: Path completo do ficheiro a enviar.
Parâmetros POST
overwrite: (booleano) Determina o comportamento caso já exista o ficheiro no destino. Em caso de True, o ficheiro é reescrito. Em caso de False, o ficheiro é renomeado
parent_rev: Caso pretenda reescrever um ficheiro, envie a última versão dele neste parâmetro.
upload_id: Identifica a sessão de upload que se pretende concluir.
Exemplo de pedido
POST /1/CommitChunkedUpload/meocloud/teste.txt
Exemplo de resposta
{ "bytes": 2055, "thumb_exists": false, "rev": "a291b836-31ea-11e2-a86d-e0db5501ca40", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "cursor": "action_copy,d75af216-d1aa-46bf-9673-6bf2d9ce7002_a2928126-31ea-11e2-a86d-e0db5501ca40,event_a291600c-31ea-11e2-a86d-e0db5501ca40", "path": "/Temp/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }
Erros devolvidos
400 Devolvido quando o pedido não contém um upload_id ou se não existe nenhuma sessão de upload com esse idVoltar ao topo
Zipdir
Compatibilidade: exclusivo MEO Cloud
Faz o download de uma directoria no formato Zip.
https://api-content.meocloud.pt/1/Zipdir/[meocloud|sandbox]/[pathname]
Métodos permitidos
GET
Parâmetros no URL
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
pathname: Path completo da directoria.
Exemplo de pedido
GET /1/Zipdir/meocloud/dir
Erros devolvidos
Ver acimaVoltar ao topo
SaveUrl
Compatibilidade: compatível com Dropbox
Faz o download do ficheiro indicado no parâmetro url para a cloud do utilizador.
https://api-content.meocloud.pt/1/SaveUrl/[meocloud|sandbox]/[pathname]
Métodos permitidos
POST
Parâmetros no URL
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
pathname: Path completo onde o ficheiro deverá ser guardado.
Exemplo de pedido
POST /1/SaveUrl/meocloud/MinhasImagens/umafoto.jpg Post fields: url=http://example.com/someimage.jpg
Exemplo de resposta
{ "status": "PENDING", "job": "ef111367-c5e9-4be4-9da4-f09fdbe516bf" }
Erros devolvidos
Ver acimaVoltar ao topo
SaveUrlJob
Compatibilidade: compatível com Dropbox
Retorna o estado de um job iniciado por uma chamada a SaveUrl.
https://api-content.meocloud.pt/1/SaveUrlJob/[jobid]
Métodos permitidos
GET
Parâmetros no URL
jobid: Job id do qual obter o estado.
Exemplo de pedido
GET /1/SaveUrlJob/ef111367-c5e9-4be4-9da4-f09fdbe516bf
Exemplo de resposta
{ "status": "COMPLETE" }
Exemplo de resposta de erro
{ "status": "FAILED", "error": "Job timed out" }
Estados possíveis
PENDING: Registado mas ainda não iniciado DOWNLOADING: Download em curso COMPLETE: Download efectuado com sucesso FAILED: Download falhado
Erros devolvidos
Ver acimaVoltar ao topo
Copy
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Copia um ficheiro
https://api.meocloud.pt/1/Fileops/Copy
Métodos permitidos
POST
Parâmetros
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
from_path: path completo de origem
to_path: path completo de destino (incluindo a root)
from_copy_ref: Ver abaixo para uma explicação
Exemplo de pedido
POST /1/Fileops/Copy Post fields: from_path=/Public/test.js&to_path=/Temp/test.js
Exemplo de resposta
{ "bytes": 2055, "thumb_exists": false, "rev": "a291b836-31ea-11e2-a86d-e0db5501ca40", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "cursor": "action_copy,d75af216-d1aa-46bf-9673-6bf2d9ce7002_a2928126-31ea-11e2-a86d-e0db5501ca40,event_a291600c-31ea-11e2-a86d-e0db5501ca40", "path": "/Temp/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }
Erros devolvidos
403 Cópia não válida (ex: o ficheiro já existe) 404 Path de origem não existente 406 Demasiados ficheirosVoltar ao topo
CopyRef
Compatibilidade: com Dropbox
Cria uma referência para uma pasta ou ficheiro, que depois pode ser usada no Copy para copiar conteúdos entre contas MEO Cloud distintas.
https://api.meocloud.pt/1/CopyRef/[meocloud|sandbox]/[pathname]
Métodos permitidos
GET
Exemplo de pedido
GET /1/CopyRef/meocloud/Photos/Brinquedos.mp4
Exemplo de resposta
{ "copy_ref": "z1X6ATl6aWtzOGq0c3g5Ng", "expires": "Fri, 31 Jan 2042 21:01:05 +0000" }
Erros devolvidos
Ver acimaVoltar ao topo
CopyRefDetails
Compatibilidade: exclusivo MEO Cloud
Devolve os detalhes de uma referência criada com o CopyRef.
https://api.meocloud.pt/1/CopyRefDetails
Métodos permitidos
GET
Exemplo de pedido
GET /1/CopyRefDetails?copy_ref=3e6356ef-7555-4123-b1b2-94fb31a057ea
Exemplo de resposta
{ "name": "123123", "bytes": 48, "is_dir": false, "size": "48 bytes", "mime_type": "application/octet-stream", "icon": "page_white.gif" }
Erros devolvidos
Ver acimaVoltar ao topo
Delete
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Remove um ficheiro ou pasta.
https://api.meocloud.pt/1/Fileops/Delete
Métodos permitidos
POST
Parâmetros
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
path: Path completo do ficheiro a remover
Exemplo de pedido
POST /1/Fileops/Delete Post fields: path=/Temp/Test.js
Exemplo de resposta
{ "is_deleted": true, "bytes": 0, "thumb_exists": false, "rev": "5a70e526-31eb-11e2-927c-e0db5501ca40", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "cursor": "action_delete,d75af216-d1aa-46bf-9673-6bf2d9ce7002_5a71bd20-31eb-11e2-927c-e0db5501ca40,event_5a7086da-31eb-11e2-927c-e0db5501ca40", "path": "/Temp/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "0 bytes" }
Erros devolvidos
404 Ficheiro inexistente 406 Demasiados ficheirosVoltar ao topo
Move
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Move um ficheiro ou pasta para uma nova localização.
https://api.meocloud.pt/1/Fileops/Move
Métodos permitidos
POST
Parâmetros
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
from_path: Path completo de origem
to_path: Path completo de destino (incluindo a root)
Exemplo de pedido
POST /1/Fileops/Move Post fields: from_path=/Temp/test.js&to_path=/Testes/test.js
Exemplo de resposta
{ "bytes": 2055, "thumb_exists": false, "rev": "d2b76d48-31eb-11e2-927c-e0db5501ca40", "modified": "Sun, 18 Nov 2012 23:20:10 +0000", "cursor": "action_move,d75af216-d1aa-46bf-9673-6bf2d9ce7002_d2b846d2-31eb-11e2-927c-e0db5501ca40,event_d2b71a96-31eb-11e2-927c-e0db5501ca40", "path": "/Testes/test.js", "is_dir": false, "icon": "text_js", "root": "meocloud", "mime_type": "application/javascript", "size": "2 KB" }
Erros devolvidos
403 Erro durante a movimentação. (ex: o path de destino já existe) 404 Não encontrado 406 Demasiados ficheirosVoltar ao topo
CreateFolder
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Cria uma nova pasta.
https://api.meocloud.pt/1/Fileops/CreateFolder
Métodos permitidos
POST
Parâmetros
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
path: Path completo de destino da nova pasta.
Exemplo de pedido
POST /1/Fileops/CreateFolder Post fields: path=/NewStuff
Exemplo de resposta
{ "hash": "061ba0c8-31ec-11e2-846d-e0db5501ca40", "bytes": 0, "thumb_exists": false, "rev": "061c0e1e-31ec-11e2-846d-e0db5501ca40", "modified": "Mon, 19 Nov 2012 01:54:15 +0000", "path": "/NewStuff", "is_dir": true, "root": "meocloud", "size": "0 bytes" }
Erros devolvidos
403 Já existe uma pasta no destino indicado.Voltar ao topo
UndeleteTree
Compatibilidade: exclusivo MEO Cloud
Recuperar um ficheiro ou pasta.
https://api.meocloud.pt/1/UndeleteTree
Métodos permitidos
POST
Parâmetros
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
path: Path completo do ficheiro ou pasta.
Exemplo de pedido
POST /1/UndeleteTree/meocloud/deleteddir
Exemplo de resposta
{ "size": "0 bytes", "rev": "1f477dd351f", "thumb_exists": false, "bytes": 0, "modified": "Wed, 10 Aug 2011 18:21:30 +0000", "path": "/deleteddir", "is_dir": true, "icon": "folder", "root": "meocloud", "revision": 5023410, "is_deleted": true }
Erros devolvidos
404 Ficheiro ou pasta não encontrados.Voltar ao topo
Forgetfile
Compatibilidade: exclusivo MEO Cloud
Remover definitivamente um ficheiro, quando este já está apagado.
https://api.meocloud.pt/1/Fileops/ForgetFile
Métodos permitidos
POST
Parâmetros
root: Obrigatório. Use meocloud ou sandbox consoante o registo que fez da sua aplicação.
path: Path completo do ficheiro.
Exemplo de pedido
POST /1/Fileops/ForgetFile
Exemplo de resposta
{ "res": "ok" }
Erros devolvidos
404 Ficheiro não encontrado. 403 Ficheiro não apagado.Voltar ao topo
SetApplicationKV
Compatibilidade: exclusivo MEO Cloud
Acrescenta/altera o valor de uma chave na Key-Value store específica da aplicação.
https://api.meocloud.pt/1/SetApplicationKV
Métodos permitidos
POST
Parâmetros
key: Nome da chave.
value: Valor a atribuír à chave.
Exemplo de pedido
POST /1/SetApplicationKV
Exemplo de resposta
{ }Voltar ao topo
GetApplicationKV
Compatibilidade: exclusivo MEO Cloud
Obtém o valor de uma ou mais chaves da Key-Value store específica da aplicação.
https://api.meocloud.pt/1/GetApplicationKV
Métodos permitidos
GET
Parâmetros
key: Nome da chave.
Exemplo de pedido
POST /1/GetApplicationKV?key=key1&key=key2
Exemplo de resposta
{ "key2": {"timestamp": 1395686281, "value": "360"}, "key1": {"timestamp": 1395686270, "value": "3600"} }Voltar ao topo
DelApplicationKV
Compatibilidade: exclusivo MEO Cloud
Remove uma chave da Key-Value store específica da aplicação.
https://api.meocloud.pt/1/DelApplicationKV
Métodos permitidos
POST
Parâmetros
key: Nome da chave.
Exemplo de pedido
POST /1/DelApplicationKV
Exemplo de resposta
{ }Voltar ao topo
SetUserKV
Compatibilidade: exclusivo MEO Cloud
Acrescenta/altera o valor de uma chave na Key-Value store específica do utilizador.
https://api.meocloud.pt/1/SetUserKV
Métodos permitidos
POST
Parâmetros
key: Nome da chave.
value: Valor a atribuír à chave.
Exemplo de pedido
POST /1/SetUserKV
Exemplo de resposta
{ }Voltar ao topo
GetUserKV
Compatibilidade: exclusivo MEO Cloud
Obtém o valor de uma ou mais chaves da Key-Value store específica do utilizador.
https://api.meocloud.pt/1/GetUserKV
Métodos permitidos
GET
Parâmetros
key: Nome da chave.
Exemplo de pedido
POST /1/GetUserKV?key=key1&key=key2
Exemplo de resposta
{ "key2": {"timestamp": 1395686281, "value": "360"}, "key1": {"timestamp": 1395686270, "value": "3600"} }Voltar ao topo
DelUserKV
Compatibilidade: exclusivo MEO Cloud
Remove uma chave da Key-Value store específica do utilizador.
https://api.meocloud.pt/1/DelUserKV
Métodos permitidos
POST
Parâmetros
key: Nome da chave.
Exemplo de pedido
POST /1/DelUserKV
Exemplo de resposta
{ }Voltar ao topo
Account/Info
Compatibilidade: compatível com Dropbox mas com itens adicionais na resposta
Mostra informação sobre o utilizador.
https://api.meocloud.pt/1/Account/Info
Métodos permitidos
GET
Exemplo de pedido
GET /1/Account/Info
Exemplo de resposta
{ display_name:"Zé das Couves", uid:285363235833635011527804093794089586408, last_event:"Wed, 19 Sep 2012 20:05:42 +0000", quota_info:{ shared:3715091, quota:5368709120, normal:1675021812 }, active:true, email:"dude@sapo.pt", language: "en" }
Erros devolvidos
Ver acimaVoltar ao topo
ListEvents
Compatibilidade: exclusivo MEO Cloud
Mostra informação sobre os últimos eventos na conta de um utilizador.
https://api.meocloud.pt/1/ListEvents
Métodos permitidos
GET
Exemplo de pedido
GET /1/ListEvents
Exemplo de resposta
[ { "eventid": "8f23d3ca-b42e-11e3-8e67-0050568c00ab", "count": 1, "csaction": "upload", "date": "Tue, 25 Mar 2014 15:03:01 +0000", "type": "changeset", "first": { "hash": "ZlOXc-sjCuPONsBI1LpouKh0SEim-ong0bbJX1l0Q6uz559ydJ6BmwqfBNfm5yHnoh5kQ_IL8zie9KD5D_gCtg", "involved_users": "[]", "is_dir": false, "revision": "8f240c50-b42e-11e3-8e67-0050568c00ab", "csaction": "add", "path": "\/Python-2.7.3.tar.bz2" } }, { "eventid": "fb0d895e-b42a-11e3-a4ff-0050568c00b1", "count": 2, "csaction": "copy", "date": "Tue, 25 Mar 2014 14:37:24 +0000", "type": "changeset", "first": { "hash": "4e083e30-b0f4-11e2-9941-406c8f001c8a", "involved_users": "[]", "is_dir": true, "revision": "fb0dbcf8-b42a-11e3-a4ff-0050568c00b1", "csaction": "add", "path": "\/Welcome kit" } }, { "eventid": "fb05ac66-b42a-11e3-afb1-0050568c00ab", "count": 1, "csaction": "create_dir", "date": "Tue, 25 Mar 2014 14:37:24 +0000", "type": "changeset", "first": { "hash": "fb059ce4-b42a-11e3-afb1-0050568c00ab", "involved_users": "[]", "is_dir": true, "revision": "fb067646-b42a-11e3-afb1-0050568c00ab", "csaction": "add", "path": "\/" } } ]
Erros devolvidos
Ver acimaVoltar ao topo
DisableAccessToken
Compatibilidade: compatível com Dropbox
Termina autorização da aplicação.
https://api.meocloud.pt/1/DisableAccessToken
Métodos permitidos
POST
Exemplo de pedido
GET /1/DisableAccessToken
Exemplo de resposta
{}
ChangeUserLanguage
Compatibilidade: exclusivo MEO Cloud
Usado para alterar a linguagem do utilizador. Essa linguagem pode ser obtida usando o método Account/Info.
https://api.meocloud.pt/1/ChangeUserLanguage
Métodos permitidos
POST
Parâmetros
lang_code: Obrigatório. O código da linguagem pretendida (ex: pt, en).
Exemplo de pedido
POST /1/ChangeUserLanguage Post fields: lang_code=en
Exemplo de resposta
{}Voltar ao topo