Freigeben über


driveItem: copy

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Erstellen Sie asynchron eine Kopie eines driveItem (einschließlich aller untergeordneten Elemente) unter einem neuen übergeordneten Element oder mit einem neuen Namen. Nachdem die Anforderung bestätigt wurde, wird sie in eine Warteschlange eingereiht. Das eigentliche Kopieren, einschließlich aller Unterelemente, erfolgt zu einem unbestimmten Zeitpunkt. Der Fortschritt wird gemeldet, bis der Vorgang abgeschlossen ist, indem der Fortschritt überwacht wird.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Globaler Dienst US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) Files.ReadWrite Files.ReadWrite.All, Sites.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Files.ReadWrite Files.ReadWrite.All
Anwendung Files.ReadWrite.All Sites.ReadWrite.All

Hinweis

SharePoint Embedded erfordert die FileStorageContainer.Selected Berechtigung für den Zugriff auf den Inhalt des Containers. Diese Berechtigung unterscheidet sich von den zuvor erwähnten Berechtigungen. Weitere Informationen finden Sie unter SharePoint Embedded-Authentifizierung und -Autorisierung.

Zusätzlich zu den Microsoft Graph-Berechtigungen muss Ihre App über die erforderlichen Berechtigungen auf Containertypebene verfügen, um diese API aufzurufen. Weitere Informationen finden Sie unter Containertypen. Weitere Informationen zu Berechtigungen auf Containertypebene finden Sie unter SharePoint Embedded-Autorisierung.

HTTP-Anforderung

POST /drives/{driveId}/items/{itemId}/copy
POST /groups/{groupId}/drive/items/{itemId}/copy
POST /me/drive/items/{item-id}/copy
POST /sites/{siteId}/drive/items/{itemId}/copy
POST /users/{userId}/drive/items/{itemId}/copy

Optionale Abfrageparameter

Diese Methode unterstützt den @microsoft.graph.conflictBehavior Abfrageparameter, um das Verhalten anzupassen, wenn ein Konflikt auftritt.

Wert Beschreibung
fail Das Standardverhalten besteht darin, den Fehler zu melden.
replace Überschreiben Sie ein vorhandenes Element am Zielstandort.
rename Benennen Sie das Element um.

Hinweis

Der conflictBehavior Parameter wird für OneDrive Consumer nicht unterstützt.

Anforderungstext

Geben Sie im Anforderungstext ein JSON-Objekt mit den folgenden Parametern an.

Name Wert Beschreibung
parentReference ItemReference Optional. Verweis auf das übergeordnete Element, in dem die Kopie erstellt wird.
name string Optional. Der neue Name der Kopie. Wenn diese Informationen nicht angegeben werden, wird der gleiche Name wie das Original verwendet.
childrenOnly Boolescher Wert Optional. Wenn auf truefestgelegt ist, werden die untergeordneten Elemente des driveItem kopiert, aber nicht das driveItem selbst. Der Standardwert ist false. Nur für Ordnerelemente gültig.

Hinweis

Der parentReference Parameter sollte die driveId Parameter und id für den Zielordner enthalten.

In einer einzelnen Anforderung kopiert die childrenOnly Option 150 untergeordnete Elemente, und für die Enkelelemente gilt der SharePoint-Grenzwert. Weitere Informationen finden Sie unter SharePoint-Einschränkung.

Antwort

Die Antwort gibt Details zum Überwachen des Fortschritts der Kopie zurück, nachdem die Anforderung angenommen wurde. Die Antwort gibt an, ob der Kopiervorgang akzeptiert oder abgelehnt wurde, z. B. wenn der Zieldateiname bereits verwendet wird.

Beispiele

Beispiel 1: Kopieren einer Datei in einen Ordner

Im folgenden Beispiel wird eine von {item-id} identifizierte Datei in einen Ordner kopiert, der mit einem - und id -driveIdWert identifiziert wird. Die neue Kopie der Datei heißt contoso plan (copy).txt.

Anforderung

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/copy
Content-Type: application/json

{
  "parentReference": {
    "driveId": "6F7D00BF-FC4D-4E62-9769-6AEA81F3A21B",
    "id": "DCD0D3AD-8989-4F23-A5A2-2C086050513F"
  },
  "name": "contoso plan (copy).txt"
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 202 Accepted
Location: https://contoso.sharepoint.com/_api/v2.0/monitor/4A3407B5-88FC-4504-8B21-0AABD3412717

Beispiel 2: Kopieren der untergeordneten Elemente in einen Ordner

Im folgenden Beispiel werden die untergeordneten Elemente in einem von {item-id} identifizierten Ordner in einen Ordner kopiert, der mit einem - und id -driveIdWert identifiziert wird. Der childrenOnly Parameter ist auf true festgelegt.

Anforderung

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/copy
Content-Type: application/json

{
  "parentReference": {
    "driveId": "6F7D00BF-FC4D-4E62-9769-6AEA81F3A21B",
    "id": "DCD0D3AD-8989-4F23-A5A2-2C086050513F"
  },
  "childrenOnly": true
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 202 Accepted
Location: https://contoso.sharepoint.com/_api/v2.0/monitor/4A3407B5-88FC-4504-8B21-0AABD3412717

Die Überwachung ist wichtig, da der Kopiervorgang mit childrenOnly über mehrere Vorgänge hinweg erfolgt.

Beispiel 3: Kopieren der untergeordneten Elemente in einen Ordner mit Namenskonflikt

Im folgenden Beispiel wird versucht, die untergeordneten Elemente in einem von {item-id} identifizierten Ordner in einen Ordner zu kopieren, der mit einem - und id -driveIdWert identifiziert wird. Das Ziel hat bereits denselben Namen, der an der Quelle gefunden wurde. Der Vorgang wird akzeptiert, aber während der Verarbeitung tritt ein Fehler auf.

Anforderung

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/copy
Content-Type: application/json

{
  "parentReference": {
    "driveId": "6F7D00BF-FC4D-4E62-9769-6AEA81F3A21B",
    "id": "DCD0D3AD-8989-4F23-A5A2-2C086050513F"
  }
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 202 Accepted
Location: https://contoso.sharepoint.com/_api/v2.0/monitor/4A3407B5-88FC-4504-8B21-0AABD3412717

Folgen Sie der Monitor-URL.

{
  "id": "46cf980a-28e1-4623-b8d0-11fc5278efe6",
  "createdDateTime": "0001-01-01T00:00:00Z",
  "lastActionDateTime": "0001-01-01T00:00:00Z",
  "status": "failed",
  "error": {
    "code": "nameAlreadyExists",
    "message": "Name already exists"
  }
}

Verwenden Sie zum Beheben dieses Fehlers den optionalen Abfrageparameter @microsoft.graph.conflictBehavior.

Beispiel 4: Kopieren der untergeordneten Elemente in einen Ordner mit Namenskonflikteinstellung conflictBehavior

Im folgenden Beispiel werden die untergeordneten Elemente in einem von {item-id} identifizierten Ordner in einen Ordner kopiert, der mit einem - und id -driveIdWert identifiziert wird. Der optionale Abfrageparameter @microsoft.graph.conflictBehavior wird ersetzt. Die möglichen Werte sind replace, rename oder fail. Das Ziel hat bereits denselben Namen, der an der Quelle gefunden wurde.

Anforderung

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/copy?@microsoft.graph.conflictBehavior=replace
Content-Type: application/json

{
  "parentReference": {
    "driveId": "6F7D00BF-FC4D-4E62-9769-6AEA81F3A21B",
    "id": "DCD0D3AD-8989-4F23-A5A2-2C086050513F"
  }
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 202 Accepted
Location: https://contoso.sharepoint.com/_api/v2.0/monitor/4A3407B5-88FC-4504-8B21-0AABD3412717

Beispiel 5: Kopieren der untergeordneten Elemente in einem Ordner aus dem Stammverzeichnis

Im folgenden Beispiel wird versucht, die untergeordneten Elemente in einem Ordner zu kopieren, der durch (auch als Root bezeichnet) identifiziert wird {item-id} , in einen Ordner, der mit einem - und id -driveIdWert identifiziert wird. Der childrenOnly Parameter ist nicht auf true festgelegt. Die Anforderung schlägt fehl, da der Kopiervorgang nicht im Stammordner ausgeführt werden kann.

Anforderung

POST https://graph.microsoft.com/beta/me/drive/items/root/copy
Content-Type: application/json

{
  "parentReference": {
    "driveId": "6F7D00BF-FC4D-4E62-9769-6AEA81F3A21B",
    "id": "DCD0D3AD-8989-4F23-A5A2-2C086050513F"
  }
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 283

{
  "error":
  {
    "code": "invalidRequest",
    "message": "Cannot copy the root folder.",
    "innerError":
    {
      "date": "2023-12-11T04:26:35",
      "request-id": "8f897345980-f6f3-49dd-83a8-a3064eeecdf8",
      "client-request-id": "50a0er33-4567-3f6c-01bf-04d144fc8bbe"
    }
  }
}

Um diesen Fehler zu beheben, legen Sie den childrenOnly Parameter auf true fest.

Beispiel 6: Kopieren der untergeordneten Elemente in einen Ordner mit mehr als 150 direkten untergeordneten Elementen

Im folgenden Beispiel wird versucht, die untergeordneten Elemente in einem von {item-id} identifizierten Ordner in einen Ordner zu kopieren, der mit einem - und id -driveIdWert identifiziert wird. Der childrenOnly Parameter ist auf true festgelegt. Das von {item-id} identifizierte Laufwerkelement enthält mehr als 150 direkte untergeordnete Elemente. Die Anforderung schlägt fehl, da der Grenzwert 150 direkte untergeordnete Elemente beträgt.

Anforderung

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/copy
Content-Type: application/json

{
  "parentReference": {
    "driveId": "6F7D00BF-FC4D-4E62-9769-6AEA81F3A21B",
    "id": "DCD0D3AD-8989-4F23-A5A2-2C086050513F"
  }
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 341

{
  "error":
  {
    "code": "invalidRequest",
    "message": "Direct child count limit exceeded. Cannot copy children only when there are more than 150 direct children.",
    "innerError":
    {
      "code": "directChildrenLimitExceeded",
      "date": "2023-12-11T04:26:35",
      "request-id": "8f897345980-f6f3-49dd-83a8-a3064eeecdf8",
      "client-request-id": "50a0er33-4567-3f6c-01bf-04d144fc8bbe"
    }
  }
}

Um diesen Fehler zu beheben, organisieren Sie die Quellordnerstruktur nur so neu, dass 150 untergeordnete Elemente vorhanden sind.

Beispiel 7: Kopieren der untergeordneten Elemente, bei denen das Quellelement eine Datei ist

Im folgenden Beispiel wird versucht, die untergeordneten Elemente in einem von {item-id} identifizierten Ordner in einen Ordner zu kopieren, der mit einem - und id -driveIdWert identifiziert wird. {item-id} bezieht sich auf eine Datei, nicht auf einen Ordner. Der childrenOnly Parameter ist auf true festgelegt. Die Anforderung schlägt fehl, da es sich bei um {item-id} ein nicht ordnerfreies driveItem handelt.

Anforderung

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/copy
Content-Type: application/json

{
  "parentReference": {
    "driveId": "6F7D00BF-FC4D-4E62-9769-6AEA81F3A21B",
    "id": "DCD0D3AD-8989-4F23-A5A2-2C086050513F"
  },
  "childrenOnly": true
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 290

{
  "error":
  {
    "code": "invalidRequest",
    "message": "childrenOnly option is not valid for file items.",
    "innerError":
    {
      "date": "2023-12-11T04:26:35",
      "request-id": "8f897345980-f6f3-49dd-83a8-a3064eeecdf8",
      "client-request-id": "50a0er33-4567-3f6c-01bf-04d144fc8bbe""
    }
  }
}

Beispiel 8: Kopieren der untergeordneten Elemente in einen Ordner mit childrenOnly und name

Im folgenden Beispiel wird versucht, die untergeordneten Elemente in einem von {item-id} identifizierten Ordner in einen Ordner zu kopieren, der mit einem - und id -driveIdWert identifiziert wird. Der childrenOnly Parameter ist auf true festgelegt und gibt einen name Wert an. Die Anforderung schlägt fehl, da childrenOnly und name nicht zusammen verwendet werden können.

Anforderung

POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/copy
Content-Type: application/json

{
  "parentReference": {
    "driveId": "6F7D00BF-FC4D-4E62-9769-6AEA81F3A21B",
    "id": "DCD0D3AD-8989-4F23-A5A2-2C086050513F"
  },
  "name": "contoso plan (copy).txt",
  "childrenOnly": true
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 285

{
  "error":
  {
    "code": "invalidRequest",
    "message": "Cannot use name parameter alongside childrenOnly.",
    "innerError":
    {
      "date": "2023-12-11T04:26:35",
      "request-id": "8f897345980-f6f3-49dd-83a8-a3064eeecdf8",
      "client-request-id": "50a0er33-4567-3f6c-01bf-04d144fc8bbe""
    }
  }
}

Fehlerinformationen finden Sie unter Fehlerantworten.