Usar itens remotos para acessar arquivos e pastas compartilhados
O OneDrive oferece suporte à adição de uma pasta compartilhada em uma unidade para facilitar o acesso ao conteúdo de uma pasta compartilhada. Quando uma pasta compartilhada é adicionada ao OneDrive, a pasta é exibida na raiz, e seu conteúdo é sincronizado usando o cliente de sincronização do OneDrive.
Quando você enumera uma coleção de itens, as pastas compartilhadas aparecem como itens com a faceta remoteItem. Essa faceta inclui as informações necessárias para acessar o conteúdo da pasta compartilhada usando a API do OneDrive.
Adicionar uma pasta compartilhada à unidade do usuário
Antes da adição de uma pasta compartilhada à unidade do usuário, é preciso atender aos seguintes requisitos:
- O usuário tem permissão explícita para a pasta compartilhada e não a está acessando por meio de um link.
- Seu aplicativo precisa de acesso de leitura e gravação à unidade onde a pasta compartilhada será adicionada.
Observação: Só é possível adicionar uma pasta compartilhada à raiz da unidade de um usuário.
Para adicionar a pasta compartilhada a uma unidade, seu aplicativo faz POSTs para a coleção raiz da unidade com os detalhes da pasta compartilhada na faceta remoteItem. Por exemplo:
POST /drive/root/children
Content-Type: application/json
{
"name": "Team Documents",
"remoteItem": {
"id": "12345abcde!1221",
"parentReference": { "driveId": "12345abcde" }
}
}
Nota:são necessários driveId e ID.
Se tiver êxito, o serviço responderá com os detalhes completos do item remoto criado:
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "98765432!12399",
"name": "Team Documents",
"remoteItem": {
"id": "12345abcde!1221",
"parentReference": {
"driveId": "12345abcde"
},
"folder": { "childCount": 15 }
},
"lastModifiedDateTime": "2015-08-10T13:47:11Z",
"createdDateTime": "2015-08-10T13:47:11Z",
}
Adicionar uma pasta compartilhada a partir da unidade do usuário
Para remover uma pasta compartilhada, basta excluir o item remoto:
DELETE /drive/items/{local-item-id}
Isso retornará 204 Sem Conteúdo se a pasta compartilhada for removida com êxito. Isso não exclui a pasta compartilhada ou os itens contidos nela.
HTTP/1.1 204 No Content
Enumerar os conteúdos de uma pasta compartilhada
Um item remoto fornece as informações necessárias para fazer uma chamada para o item real que ele representa. O item remoto é um espaço reservado na unidade do usuário para aquele item, mas não pode ser acessado como um item na unidade do usuário. Por exemplo, solicitar a coleção children de um item remoto resultará em um erro do servidor.
Por exemplo, considere este item remoto:
{
"id": "98765432!12399",
"name": "Team Documents",
"remoteItem": {
"id": "12345abcde!1221",
"parentReference": {
"driveId": "12345abcde"
}
},
"lastModifiedDateTime": "2015-08-10T13:47:11Z",
"createdDateTime": "2015-08-10T13:47:11Z"
}
Para enumerar o conteúdo dessa pasta compartilhada, a propriedade remoteItem é usada para criar uma solicitação para a pasta compartilhada contida na unidade remota.
GET /drives/{drive-id}/items/{item-id}/children
Este exemplo retorna os filhos da pasta compartilhada, chamando-os na unidade pai da pasta compartilhada.
HTTP/1.1 200 OK
Content-Type: application/json
{
"value":
[
{
"id": "12345abcde!9912",
"name": "Team Roster.xlsx",
"file": { },
"size": 90122
}
]
}
Usando Delta com itens remotos
Ao usar delta em uma unidade com pastas compartilhadas, a própria pasta compartilhada é retornada como parte da resposta, mas os itens contidos na pasta compartilhada não são retornados. Uma chamada separada para delta e um token delta armazenado em cache separado são necessários para cada pasta compartilhada.
Movendo itens para uma pasta compartilhada
A API do OneDrive não tem suporte para mover ou copiar itens para uma pasta compartilhada. É possível criar novos itens na pasta usando ações de upload regulares e direcionando driveId e id do remoteItem.