Namespace: microsoft.graph
Adicione uma permissão a um ficheiro existenteStorageContainer.
Importante
As permissões adicionadas a um fileStorageContainer aplicam-se a todos os objetos driveItem , independentemente de quaisquer permissões exclusivas ou restritivas aplicadas a esses itens.
Esta API está disponível nas seguintes implementações de cloud nacionais.
| Serviço global |
US Government L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Permissões
Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.
| Tipo de permissão |
Permissões com menos privilégios |
Permissões com privilégios superiores |
| Delegado (conta corporativa ou de estudante) |
FileStorageContainer.Selected |
FileStorageContainer.Manage.All |
| Delegado (conta pessoal da Microsoft) |
FileStorageContainer.Selected |
Indisponível. |
| Application |
FileStorageContainer.Selected |
Indisponível. |
Além das permissões do Microsoft Graph, a sua aplicação também tem de ter as permissões ou permissões necessárias ao nível do contentor para chamar esta API. Para obter detalhes sobre os tipos de contentor, veja Tipos de Contentor. Para saber mais sobre as permissões ao nível do contentor, veja Autorização do SharePoint Embedded.
Solicitação HTTP
POST /storage/fileStorage/containers/{containerId}/permissions
| Nome |
Descrição |
| Autorização |
{token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-Type |
application/json. Obrigatório. |
Corpo da solicitação
No corpo do pedido, forneça uma representação JSON do objeto de permissão com as seguintes propriedades.
| Nome |
Tipo |
Descrição |
| funções |
Collection(String) |
O tipo de permissões. Ou reader, writer, managerou owner. |
| grantedToV2 |
sharePointIdentitySet |
Para permissões de tipo de utilizador, os detalhes do utilizador para esta permissão. |
Resposta
Se for bem-sucedido, este método devolve um 201 Created código de resposta e um objeto de permissão no corpo da resposta.
Exemplos
Solicitação
O exemplo seguinte mostra como adicionar um novo utilizador como leitor a um contentor.
POST https://graph.microsoft.com/v1.0/storage/fileStorage/containers/b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z/permissions
Content-type: application/json
{
"roles": ["reader"],
"grantedToV2": {
"user": {
"userPrincipalName": "jacob@fabrikam.com"
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Permission
{
Roles = new List<string>
{
"reader",
},
GrantedToV2 = new SharePointIdentitySet
{
User = new Identity
{
AdditionalData = new Dictionary<string, object>
{
{
"userPrincipalName" , "jacob@fabrikam.com"
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Storage.FileStorage.Containers["{fileStorageContainer-id}"].Permissions.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewPermission()
roles := []string {
"reader",
}
requestBody.SetRoles(roles)
grantedToV2 := graphmodels.NewSharePointIdentitySet()
user := graphmodels.NewIdentity()
additionalData := map[string]interface{}{
"userPrincipalName" : "jacob@fabrikam.com",
}
user.SetAdditionalData(additionalData)
grantedToV2.SetUser(user)
requestBody.SetGrantedToV2(grantedToV2)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
permissions, err := graphClient.Storage().FileStorage().Containers().ByFileStorageContainerId("fileStorageContainer-id").Permissions().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Permission permission = new Permission();
LinkedList<String> roles = new LinkedList<String>();
roles.add("reader");
permission.setRoles(roles);
SharePointIdentitySet grantedToV2 = new SharePointIdentitySet();
Identity user = new Identity();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("userPrincipalName", "jacob@fabrikam.com");
user.setAdditionalData(additionalData);
grantedToV2.setUser(user);
permission.setGrantedToV2(grantedToV2);
Permission result = graphClient.storage().fileStorage().containers().byFileStorageContainerId("{fileStorageContainer-id}").permissions().post(permission);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const permission = {
roles: ['reader'],
grantedToV2: {
user: {
userPrincipalName: 'jacob@fabrikam.com'
}
}
};
await client.api('/storage/fileStorage/containers/b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z/permissions')
.post(permission);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Permission;
use Microsoft\Graph\Generated\Models\SharePointIdentitySet;
use Microsoft\Graph\Generated\Models\Identity;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Permission();
$requestBody->setRoles(['reader', ]);
$grantedToV2 = new SharePointIdentitySet();
$grantedToV2User = new Identity();
$additionalData = [
'userPrincipalName' => 'jacob@fabrikam.com',
];
$grantedToV2User->setAdditionalData($additionalData);
$grantedToV2->setUser($grantedToV2User);
$requestBody->setGrantedToV2($grantedToV2);
$result = $graphServiceClient->storage()->fileStorage()->containers()->byFileStorageContainerId('fileStorageContainer-id')->permissions()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.permission import Permission
from msgraph.generated.models.share_point_identity_set import SharePointIdentitySet
from msgraph.generated.models.identity import Identity
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Permission(
roles = [
"reader",
],
granted_to_v2 = SharePointIdentitySet(
user = Identity(
additional_data = {
"user_principal_name" : "jacob@fabrikam.com",
}
),
),
)
result = await graph_client.storage.file_storage.containers.by_file_storage_container_id('fileStorageContainer-id').permissions.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
O exemplo a seguir mostra a resposta.
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.permission",
"id": "cJpbmNpcGFsT3duZAJfaLowIy5mfG1lbWJliZXJzaGlwfHJvcnlicjExMUBvdXRsb29rLmNvbQ",
"roles": ["reader"],
"grantedToV2": {
"user": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
"userPrincipalName": "jacob@fabrikam.com",
"displayName": "Jacob Hancock",
"email": "jacob@fabrikam.com"
}
}
}