Compartilhar via


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.