Datei kopieren
Der vorgang Copy File
kopiert ein BLOB oder eine Datei in eine Zieldatei innerhalb des Speicherkontos. Dieser Vorgang wird in Version 2015-02-21 und höher für Dateifreigaben mit aktiviertem SMB-Protokoll unterstützt und in Version 2025-05-05 und höher für Dateifreigaben mit AKTIVIERTem NFS-Protokoll unterstützt.
Protokollverfügbarkeit
Aktiviertes Dateifreigabeprotokoll | Verfügbar |
---|---|
SMB |
![]() |
NFS |
![]() |
Bitten
Die Copy File
Anforderung wird wie folgt erstellt. Es wird empfohlen, HTTPS zu verwenden.
Ab Version 2013-08-15 können Sie eine Freigegebene Zugriffssignatur für die Zieldatei angeben, wenn sie sich im selben Konto wie die Quelldatei befindet. Ab Version 2015-04-05 können Sie auch eine Freigegebene Zugriffssignatur für die Zieldatei angeben, wenn sie sich in einem anderen Speicherkonto befindet.
Methode | Anforderungs-URI | HTTP-Version |
---|---|---|
STELLEN | https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile |
HTTP/1.1 |
Ersetzen Sie die pfadkomponenten, die im Anforderungs-URI angezeigt werden, wie folgt:
Pfadkomponente | Beschreibung |
---|---|
myaccount |
Der Name Ihres Speicherkontos. |
myshare |
Der Name Ihrer Dateifreigabe. |
mydirectorypath |
Wahlfrei. Der Pfad zum übergeordneten Verzeichnis. |
myfile |
Der Name der Datei. |
Ausführliche Informationen zu Pfadbenennungseinschränkungen finden Sie unter Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten.
URI-Parameter
Sie können die folgenden zusätzlichen Parameter für den Anforderungs-URI angeben:
Parameter | Beschreibung |
---|---|
timeout |
Wahlfrei. Der parameter timeout wird in Sekunden ausgedrückt. Weitere Informationen finden Sie unter Festlegen von Timeouts für Azure Files-Vorgänge. |
Anforderungsheader
Die erforderlichen und optionalen Anforderungsheader werden in den folgenden Tabellen beschrieben:
Allgemeine Anforderungsheader
Anforderungsheader | Beschreibung |
---|---|
Authorization |
Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage. |
Date oder x-ms-date |
Erforderlich. Gibt die koordinierte Weltzeit (UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage. |
x-ms-version |
Erforderlich für alle autorisierten Anforderungen. Gibt die Version des Vorgangs an, der für diese Anforderung verwendet werden soll. Dieser Vorgang wird in Version 2015-02-21 und höher für Dateifreigaben mit aktiviertem SMB-Protokoll unterstützt und in Version 2025-05-05 und höher für Dateifreigaben mit AKTIVIERTem NFS-Protokoll unterstützt. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure Storage-Dienste. |
x-ms-meta-name:value |
Wahlfrei. Gibt Name/Wert-Paare an, die der Datei als Metadaten zugeordnet sind. Wenn keine Namens-Wert-Paare angegeben werden, kopiert der Vorgang die Metadaten aus dem Quell-BLOB oder der Datei in die Zieldatei. Wenn mindestens ein Name/Wert-Paar angegeben wird, wird die Zieldatei mit den angegebenen Metadaten erstellt, und die Metadaten werden nicht aus dem Quell-BLOB oder der Quelldatei kopiert. Metadatennamen müssen den Benennungsregeln für C#-Bezeichnerentsprechen. Auf dateimetadaten, die über Azure Files angegeben sind, kann nicht über einen SMB-Client zugegriffen werden. |
x-ms-copy-source:name |
Erforderlich. Gibt die URL der Quelldatei oder des Blobs an, bis zu 2 Kibibyte (KiB) länge. Um eine Datei in eine andere Datei innerhalb desselben Speicherkontos zu kopieren, können Sie einen freigegebenen Schlüssel verwenden, um die Quelldatei zu autorisieren. Wenn Sie eine Datei aus einem anderen Speicherkonto kopieren oder ein Blob aus demselben Speicherkonto oder einem anderen Speicherkonto kopieren, müssen Sie die Quelldatei oder das BLOB mithilfe einer freigegebenen Zugriffssignatur autorisieren. Wenn es sich bei der Quelle um ein öffentliches BLOB handelt, ist keine Autorisierung erforderlich, um den Kopiervorgang auszuführen. Sie können auch eine Datei in einer Freigabemomentaufnahme als Kopierquelle angeben. Hier sind einige Beispiele für Quellobjekt-URLs:
|
x-ms-lease-id:<ID> |
Erforderlich, wenn die Zieldatei über eine aktive Lease verfügt. Verfügbar für Version 2019-02-02 und höher. Die für diesen Header angegebene Lease-ID muss mit der Lease-ID der Zieldatei übereinstimmen. Wenn die Anforderung nicht die Lease-ID enthält oder die ID ungültig ist, schlägt der Vorgang mit dem Statuscode 412 fehl (Vorbedingung fehlgeschlagen). Wenn dieser Header angegeben ist und die Zieldatei derzeit nicht über eine aktive Lease verfügt, schlägt der Vorgang mit dem Statuscode 412 fehl (Vorbedingung fehlgeschlagen). Dieser Header wird ignoriert, wenn sich die Zieldatei auf einer Dateifreigabe mit aktiviertem NFS-Protokoll befindet, was Dateileases nicht unterstützt. |
x-ms-file-creation-time |
Wahlfrei. Verfügbar für Version 2019-07-07 und höher. Dieser Header gibt die Eigenschaft für die Erstellungszeit in UTC an, die für die Zieldatei festgelegt werden soll. Sie können einen Wert von source verwenden, um die Erstellungszeit aus der Quelldatei in die Zieldatei zu kopieren. |
x-ms-file-last-write-time |
Wahlfrei. Verfügbar für Version 2019-07-07 und höher. Dieser Header gibt die Eigenschaft für die letzte Schreibzeit in UTC an, die für die Zieldatei festgelegt werden soll. Sie können einen Wert von source verwenden, um die letzte Schreibzeit aus der Quelldatei in die Zieldatei zu kopieren. |
x-ms-client-request-id |
Wahlfrei. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Grenzwert von 1-KiB-Zeichen bereit, der bei der Konfiguration der Protokollierung in den Protokollen aufgezeichnet wird. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt. Weitere Informationen finden Sie unter Überwachen von Azure Blob Storage. |
x-ms-file-request-intent |
Erforderlich, wenn Authorization Header ein OAuth-Token angibt. Zulässiger Wert ist backup . Dieser Header gibt an, dass die Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action oder Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action gewährt werden sollen, wenn sie in der RBAC-Richtlinie enthalten sind, die der Identität zugewiesen ist, die mithilfe des Authorization -Headers autorisiert ist. Verfügbar für Version 2022-11-02 und höher. |
x-ms-allow-trailing-dot: { <Boolean> } |
Wahlfrei. Version 2022-11-02 und höher. Der boolesche Wert gibt an, ob ein nachgestellter Punkt in der Anforderungs-URL gekürzt werden soll. Dieser Header wird ignoriert, wenn sich das Ziel auf einer Dateifreigabe mit aktiviertem NFS-Protokoll befindet, das den nachfolgenden Punkt standardmäßig unterstützt. Weitere Informationen finden Sie unter Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten. |
x-ms-source-allow-trailing-dot: { <Boolean> } |
Wahlfrei. Version 2022-11-02 und höher. Der boolesche Wert gibt an, ob ein nachgestellter Punkt in der Quell-URL gekürzt werden soll. Dieser Header sollte nur angegeben werden, wenn sich die Kopierquelle in einer Azure-Dateifreigabe befindet. Dieser Header wird für keinen anderen Kopierquelltyp unterstützt. Dieser Header wird ignoriert, wenn sich die Kopierquelle in einer Dateifreigabe mit aktiviertem NFS-Protokoll befindet, die den nachfolgenden Punkt standardmäßig unterstützt. Weitere Informationen finden Sie unter Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten. |
Nur SMB-Anforderungsheader
Anforderungsheader | Beschreibung |
---|---|
x-ms-file-change-time: { <DateTime> ¦ source } |
Wahlfrei. Version 2021-06-08 und höher. Die UTC-Änderungszeiteigenschaft für die Datei, die im ISO 8601-Format formatiert ist. Ein Wert von source kann verwendet werden, um die Änderungszeit von der Quelldatei in die Zieldatei zu kopieren. Der Standardzeitstempel ist die Uhrzeit der Anforderung. |
x-ms-file-permission-copy-mode: { source ¦ override } |
Wahlfrei. Verfügbar für Version 2019-07-07 und höher. Bestimmt das Kopierverhalten der Sicherheitsbeschreibung der Datei:
|
x-ms-file-permission: { <SDDL> ¦ <binary> } |
Erforderlich, wenn x-ms-file-permission-copy-mode als override angegeben ist und x-ms-file-permission-key nicht angegeben ist. Verfügbar für Version 2019-07-07 und höher. Diese Berechtigung ist der Sicherheitsdeskriptor für die Datei, die in der Security Descriptor Definition Language (SDDL) oder (Version 2025-01-05 oder höher) im base64-codierten binären Sicherheitsdeskriptorformatangegeben ist. Sie können angeben, welches Format mit der x-ms-file-permission-format Kopfzeile verwendet werden soll. Sie können diesen Header verwenden, wenn die Berechtigungsgröße 8 Kibibyte (KiB) oder weniger beträgt. Andernfalls können Sie x-ms-file-permission-key verwenden. Wenn angegeben, muss sie über einen Besitzer, eine Gruppe und diskretionäre Zugriffssteuerungsliste (DACL)verfügen. Es kann nur ein x-ms-file-permission oder x-ms-file-permission-key angegeben werden. |
x-ms-file-permission-key |
Erforderlich, wenn x-ms-file-permission-copy-mode als override angegeben ist und x-ms-file-permission nicht angegeben wird. Verfügbar für Version 2019-07-07 und höher. Dieser Header gibt den Schlüssel der Berechtigung an, die für die Datei festgelegt werden soll. Sie können diesen Schlüssel mithilfe des Create Permission -Vorgangs erstellen.Es kann nur ein x-ms-file-permission oder x-ms-file-permission-key angegeben werden. |
x-ms-file-permission-format: { sddl ¦ binary } |
Wahlfrei. Version 2025-01-05 oder höher. Gibt an, ob sich der in x-ms-file-permission übergebene Wert in SDDL oder im Binärformat befindet. Wenn dieser Header nicht festgelegt ist, wird der Standardwert von sddl verwendet. |
x-ms-file-attributes |
Wahlfrei. Verfügbar für Version 2019-07-07 und höher. Dieser Header gibt die Dateisystemattribute an, die für die Zieldatei festgelegt werden sollen. Sehen Sie sich die Liste der verfügbaren Attributean. Sie können einen Wert von source verwenden, um die Attribute aus der Quelldatei in die Zieldatei zu kopieren. Sie können einen Wert von none verwenden, um alle Attribute in der Zieldatei zu löschen. |
x-ms-file-copy-ignore-readonly |
Wahlfrei. Verfügbar für Version 2019-07-07 und höher. Dieser boolesche Wert gibt an, ob das ReadOnly -Attribut für eine bereits vorhandene Zieldatei berücksichtigt werden soll. Wenn es true ist, wird der Kopiervorgang erfolgreich ausgeführt. Andernfalls führt eine vorherige Datei am Ziel mit dem attributsatz ReadOnly dazu, dass der Kopiervorgang fehlschlägt. |
x-ms-file-copy-set-archive |
Wahlfrei. Verfügbar für Version 2019-07-07 und höher. Dieser boolesche Wert gibt an, ob das attribut Archive festgelegt werden soll, unabhängig vom x-ms-file-attributes Headerwert. |
NUR NFS-Anforderungsheader
Anforderungsheader | Beschreibung |
---|---|
x-ms-file-mode-copy-mode: { source ¦ override } |
Wahlfrei. Version 2025-05-05 und höher. Gilt nur, wenn die Kopierquelle eine Datei ist, die sich auf einer Dateifreigabe mit aktiviertem NFS-Protokoll befindet. Bestimmt das Kopierverhalten der Modusbits der Datei:
|
x-ms-mode |
Version 2025-05-05 und höher. Erforderlich, wenn x-ms-file-mode-copy-mode als override angegeben ist. Die Modusbits, die für die Datei festgelegt werden sollen. Der Modus wird im 12-Bit-zahlenbasierten Oktalformat oder im symbolischen "rwx"-Format dargestellt. Siehe POSIX Dateiberechtigungen (Modus). |
x-ms-file-owner-copy-mode: { source ¦ override } |
Wahlfrei. Version 2025-05-05 und höher. Gilt nur, wenn die Kopierquelle eine Datei ist, die sich auf einer Dateifreigabe mit aktiviertem NFS-Protokoll befindet. Bestimmt das Kopierverhalten des Benutzerbezeichners (UID) des Besitzers und des Gruppenbezeichners (GID) der Datei:
|
x-ms-owner |
Version 2025-05-05 und höher. Der Benutzerbezeichner (UID) des Dateibesitzers, der für die Datei festgelegt werden soll. Erforderlich, wenn x-ms-file-owner-copy-mode als override angegeben ist. |
x-ms-group |
Version 2025-05-05 und höher. Der Gruppenbezeichner (GID) des Dateibesitzers, der für die Datei festgelegt werden soll. Erforderlich, wenn x-ms-file-owner-copy-mode als override angegeben ist. |
Anforderungstext
Nichts.
Antwort
Die Antwort enthält einen HTTP-Statuscode und eine Reihe von Antwortheadern.
Statuscode
Ein erfolgreicher Vorgang gibt den Statuscode 202 (Akzeptiert) zurück. Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes.
Antwortheader
Die Antwort für diesen Vorgang enthält die Kopfzeilen in den folgenden Tabellen. Die Antwort kann auch zusätzliche Standard-HTTP-Header enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.
Allgemeine Antwortheader
Antwortheader | Beschreibung |
---|---|
ETag |
Wenn der Kopiervorgang abgeschlossen ist, enthält sie den ETag Wert der Zieldatei. Wenn der Kopiervorgang nicht abgeschlossen ist, enthält sie den ETag Wert der leeren Datei, die zu Beginn des Vorgangs erstellt wurde. |
Last-Modified |
Gibt das Datum/die Uhrzeit zurück, zu dem der Kopiervorgang in die Zieldatei abgeschlossen ist. |
x-ms-request-id |
Identifiziert eindeutig die Anforderung, die durchgeführt wurde. Sie können diesen Header verwenden, um die Anforderung zu beheben. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge. |
x-ms-version |
Gibt die Version von Azure Files an, die zum Ausführen der Anforderung verwendet wird. |
Date |
Ein UTC-Datums-/Uhrzeitwert, der die Uhrzeit angibt, zu der der Dienst die Antwort gesendet hat. |
x-ms-copy-id: <id> |
Stellt einen Zeichenfolgenbezeichner für diesen Kopiervorgang bereit. Mit Get File oder Get File Properties können Sie den Status dieses Kopiervorgangs überprüfen oder an Abort Copy File übergeben, um einen ausstehenden Kopiervorgang abzubrechen. |
x-ms-copy-status: <success ¦ pending> |
Gibt den Status des Kopiervorgangs mit den folgenden Werten an: - success : Der Kopiervorgang wurde erfolgreich abgeschlossen.- pending : Der Kopiervorgang wird noch ausgeführt. |
x-ms-client-request-id |
Kann verwendet werden, um Anfragen und entsprechende Antworten zu behandeln. Der Wert dieser Kopfzeile ist gleich dem Wert des headers x-ms-client-request-id , wenn er in der Anforderung vorhanden ist und der Wert höchstens 1.024 sichtbare ASCII-Zeichen aufweist. Wenn der x-ms-client-request-id -Header in der Anforderung nicht vorhanden ist, ist dieser Header in der Antwort nicht vorhanden. |
Nur SMB-Antwortheader
Nichts.
NUR NFS-Antwortheader
Nichts.
Antworttext
Nichts
Beispielantwort
Response Status:
HTTP/1.1 202 Accepted
Response Headers:
Last-Modified: <date>
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2015-02-21
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date>
Ermächtigung
Dieser Vorgang kann vom Kontobesitzer oder von einem Client mit einer freigegebenen Zugriffssignatur aufgerufen werden, die über die Berechtigung zum Schreiben in die Zieldatei oder deren Freigabe verfügt. Beachten Sie, dass die in der Anforderung angegebene Signatur für den freigegebenen Zugriff nur für die Zieldatei gilt.
Der Zugriff auf die Quelldatei oder das BLOB wird separat autorisiert, wie in den Details für den Anforderungsheader x-ms-copy-source
beschrieben.
In der folgenden Tabelle wird beschrieben, wie die Ziel- und Quellobjekte für einen Copy File
Vorgang autorisiert werden können:
Datei | Autorisierung mit freigegebenem Schlüssel oder Freigegebenem Schlüssel Lite | Autorisierung mit freigegebener Zugriffssignatur | Öffentliches Objekt erfordert keine Autorisierung |
---|---|---|---|
Zieldatei | Ja | Ja | Nicht zutreffend |
Quelldatei in demselben Konto | Ja | Ja | Nicht zutreffend |
Quelldatei in einem anderen Konto | Nein | Ja | Nicht zutreffend |
Quell-BLOB im selben Konto oder einem anderen Konto | Nein | Ja | Ja |
Dateisystemattribute
Attribut | Win32-Dateiattribute | Definition |
---|---|---|
ReadOnly |
FILE_ATTRIBUTE_READONLY |
Die Datei ist schreibgeschützt. Anwendungen können die Datei lesen, aber nicht in sie schreiben oder löschen. |
Hidden |
FILE_ATTRIBUTE_HIDDEN |
Die Datei ist ausgeblendet. Sie ist nicht in einer normalen Verzeichnisauflistung enthalten. |
System |
FILE_ATTRIBUTE_SYSTEM |
Das Betriebssystem verwendet einen Teil der Datei oder verwendet die Datei ausschließlich. |
None |
FILE_ATTRIBUTE_NORMAL |
Die Datei hat keine anderen Attribute festgelegt. Dieses Attribut ist nur gültig, wenn es allein verwendet wird. |
Archive |
FILE_ATTRIBUTE_ARCHIVE |
Die Datei ist eine Archivdatei. Anwendungen verwenden dieses Attribut in der Regel, um Dateien für die Sicherung oder Entfernung zu markieren. |
Temporary |
FILE_ATTRIBUTE_TEMPORARY |
Die Datei wird für temporären Speicher verwendet. |
Offline |
FILE_ATTRIBUTE_OFFLINE |
Die Daten der Datei sind nicht sofort verfügbar. Dieses Dateisystem-Attribut bietet hauptsächlich Kompatibilität mit Windows. Azure Files unterstützt sie nicht mit Offlinespeicheroptionen. |
NotContentIndexed |
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED |
Der Inhaltsindizierungsdienst indiziert die Datei nicht. |
NoScrubData |
FILE_ATTRIBUTE_NO_SCRUB_DATA |
Der Datenintegritätsscanner im Hintergrund liest den Benutzerdatenstrom nicht. Dieses Dateisystem-Attribut bietet hauptsächlich Kompatibilität mit Windows. |
POSIX-Dateiberechtigungen (Modus)
POSIX-Dateiberechtigungen können numerisch in einem 12-Bit-Numerischen Oktalformat oder in einem symbolischen "rwx"-Format angegeben werden. Beispiele:
- "0644" oder "rw-r-r---": Der Benutzer (Dateibesitzer) verfügt über Lese-, Schreibberechtigungen. Gruppe verfügt über Leseberechtigungen. Andere Personen verfügen über Leseberechtigungen.
- "0755" oder "rwxr-xr-x": Der Benutzer (Dateibesitzer) verfügt über Lese-, Schreib- und Ausführungsberechtigungen. Die Gruppe verfügt über Lese- und Ausführungsberechtigungen. Andere Haben Lese- und Ausführungsberechtigungen.
Numerisches oktales Format
Die drei niedrigsten oktalen Zahlen der Reihenfolge stellen die Berechtigungen für Besitzer/Benutzer, Gruppe und andere dar und werden mit einer oktalen Zahl (0-7) angegeben, die mit einer bitweisen Kombination von "4" (Lesen), "2" (Schreiben), "1" (Ausführen) gebildet wird. Die höchste Oktale Zahl (0-7) wird verwendet, um eine Kombination von '4' (SetUID), '2' (SetGID), '1' (StickyBit)-Berechtigungen anzugeben.
Format | Erlaubnis |
---|---|
0700 | Der Benutzer (Dateibesitzer) verfügt über Lese-, Schreib- und Ausführungsberechtigungen. |
0400 | Der Benutzer verfügt über Leseberechtigungen. |
0200 | Der Benutzer verfügt über Schreibberechtigungen. |
0100 | Der Benutzer hat die Berechtigung "Ausführen". |
0070 | Die Gruppe verfügt über Lese-, Schreib- und Ausführungsberechtigungen. |
0040 | Gruppe verfügt über Leseberechtigungen. |
0020 | Gruppe verfügt über Schreibberechtigungen. |
0010 | Die Gruppe hat die Berechtigung "Ausführen". |
0007 | Andere haben Lese-, Schreib- und Ausführungsberechtigungen. |
0004 | Andere Personen verfügen über Leseberechtigungen. |
0002 | Andere verfügen über Schreibberechtigungen. |
0001 | Andere haben die Berechtigung zum Ausführen. |
4000 | Legen Sie die effektive Benutzer-ID für die Datei fest. |
2000 | Legen Sie die effektive Gruppen-ID für die Datei fest. |
1000 | Legen Sie fest, dass die Datei gelöscht oder nur vom Dateibesitzer, Verzeichnisbesitzer oder Stammbenutzer umbenannt werden kann. |
Symbolisches "rwx"-Format
Berechtigungen für Besitzer/Benutzer, Gruppen und andere werden mithilfe einer Kombination von Zeichen "r" (Lesen), "w" (Schreiben) und "x" (Execute) angegeben.
Format | Erlaubnis |
---|---|
rwx------ | Der Benutzer (Dateibesitzer) verfügt über Lese-, Schreib- und Ausführungsberechtigungen. |
r-------- | Der Benutzer verfügt über Leseberechtigungen. |
-w------- | Der Benutzer verfügt über Schreibberechtigungen. |
--x------ | Der Benutzer hat die Berechtigung "Ausführen". |
---rwx--- | Die Gruppe verfügt über Lese-, Schreib- und Ausführungsberechtigungen. |
---r----- | Gruppe verfügt über Leseberechtigungen. |
----w---- | Gruppe verfügt über Schreibberechtigungen. |
-----x--- | Die Gruppe hat die Berechtigung "Ausführen". |
------rwx | Andere verfügen über Lese-, Schreib- und Ausführungsberechtigungen. |
------r-- | Andere Personen verfügen über Leseberechtigungen. |
-------w- | Andere verfügen über Schreibberechtigungen. |
--------x | Andere haben die Berechtigung zum Ausführen. |
Bemerkungen
Der Copy File
-Vorgang kann asynchron abgeschlossen werden. Sie können die Kopier-ID verwenden, die der x-ms-copy-id
Antwortheader zurückgibt, um den Status des Kopiervorgangs zu überprüfen oder abzubrechen. Azure Files kopiert Dateien auf best-effort-Basis.
Wenn die Zieldatei vorhanden ist, wird sie überschrieben. Sie können die Zieldatei nicht ändern, während der Kopiervorgang ausgeführt wird.
Der vorgang Copy File
kopiert immer das gesamte Quell-BLOB oder die gesamte Datei. Das Kopieren eines Bytebereichs oder einer Gruppe von Blöcken wird nicht unterstützt.
Die Quelle eines Copy File
Vorgangs kann eine Datei sein, die sich in einer Freigabemomentaufnahme befindet. Das Ziel eines Copy File
Vorgangs kann keine Datei sein, die sich in einer Freigabemomentaufnahme befindet.
Wenn die Quelle eines Kopiervorgangs ETag
Werte bereitstellt, tritt ein Fehler auf, wenn änderungen an der Quelle vorgenommen werden, während der Vorgang ausgeführt wird. Ein Versuch, die Zieldatei zu ändern, während ein Kopiervorgang ausgeführt wird, schlägt mit dem Statuscode 409 (Konflikt) fehl.
Der ETag
Wert für die Zieldatei ändert sich, wenn der Copy File
Vorgang gestartet wird. Es ändert sich während des Kopiervorgangs weiterhin häufig.
Kopieren von Eigenschaften und Metadaten
Wenn ein Blob oder eine Datei kopiert wird, werden die folgenden Systemeigenschaften mit denselben Werten in die Zieldatei kopiert:
Content-Type
Content-Encoding
Content-Language
Content-Length
Cache-Control
Content-MD5
Content-Disposition
Die Zieldatei ist immer dieselbe Größe wie das Quell-BLOB oder die Quelldatei. Der Wert des Content-Length
-Headers für die Zieldatei entspricht dem Wert dieses Headers für das Quell-BLOB oder die Quelldatei.
Kopieren eines leaseten Blobs oder einer Datei in eine Datei
Der Copy File
Vorgang liest nur aus dem Quell-BLOB oder der Quelldatei, sodass eine Lease für das Quellobjekt den Vorgang nicht beeinflusst. Der Copy File
Vorgang speichert den ETag
Wert des Quell-Blobs oder der Datei, wenn der Vorgang gestartet wird. Wenn sich der ETag
Wert ändert, bevor der Kopiervorgang abgeschlossen ist, schlägt der Vorgang fehl. Sie können Änderungen am Quell-BLOB der Datei verhindern, indem Sie sie während des Kopiervorgangs leasingen.
Wenn die Zieldatei über eine aktive unendliche Lease verfügt, müssen Sie die Lease-ID im Aufruf des Copy File
-Vorgangs angeben. Während der Kopiervorgang aussteht, schlägt jeder Leasevorgang in der Zieldatei mit dem Statuscode 409 (Konflikt) fehl. Eine unendliche Lease für die Zieldatei wird während des Kopiervorgangs auf diese Weise gesperrt, unabhängig davon, ob Sie in eine Zieldatei kopieren, die einen anderen Namen als die Quelle hat oder in eine Zieldatei kopiert wird, die denselben Namen wie die Quelle hat. Wenn der Client eine Lease-ID für eine Datei angibt, die noch nicht vorhanden ist, gibt Azure Files den Statuscode 412 zurück (Vorbedingung fehlgeschlagen).
Arbeiten mit einem ausstehenden Kopiervorgang
Der vorgang Copy File
kann das asynchrone Kopieren der Dateien beenden. Verwenden Sie die folgende Tabelle, um den nächsten Schritt basierend auf dem Statuscode zu bestimmen, der zurückgegeben Copy File
:
Statuscode | Bedeutung |
---|---|
202 (Akzeptiert), x-ms-copy-status: success | Der Kopiervorgang wurde erfolgreich abgeschlossen. |
202 (Akzeptiert), x-ms-copy-status: ausstehend | Der Kopiervorgang wurde nicht abgeschlossen. Rufen Sie das Ziel-BLOB mithilfe von Get File Properties ab, um x-ms-copy-status zu untersuchen, bis der Kopiervorgang abgeschlossen ist oder fehlschlägt. |
4xx, 500 oder 503 | Der Kopiervorgang ist fehlgeschlagen. |
Während und nach einem Copy File
Vorgang enthalten die Eigenschaften der Zieldatei die Kopier-ID des Copy File
Vorgangs und die URL des Quell-Blobs oder der Datei. Nach Abschluss des Vorgangs schreibt Azure Files den Zeit- und Ergebniswert (success
, failed
oder aborted
) in die Eigenschaften der Zieldatei. Wenn der Vorgang ein failed
Ergebnis hat, enthält der x-ms-copy-status-description
Header eine Fehlerdetailseite.
Ein ausstehender Copy File
Vorgang hat ein zweiwöchiges Timeout. Ein Kopierversuch, der nach zwei Wochen nicht beendet wurde, und hinterlässt eine leere Datei, wobei das feld x-ms-copy-status
auf failed
festgelegt ist, und das feld x-ms-status-description
auf 500 (OperationCancelled) festgelegt ist. Zeitweilige, nicht schwerwiegende Fehler, die während eines Kopiervorgangs auftreten können, beeinträchtigen den Fortschritt des Vorgangs, verursachen jedoch keinen Fehler. In diesen Fällen beschreibt x-ms-copy-status-description
die zeitweiligen Fehler.
Jeder Versuch, die Zieldatei während des Kopiervorgangs zu ändern, schlägt mit dem Statuscode 409 (Konflikt), "Datei in Bearbeitung kopieren" fehl.
Wenn Sie einen Abort Copy File
Vorgang aufrufen, wird ein x-ms-copy-status:aborted
Header angezeigt. Die Zieldatei hat intakte Metadaten und eine Dateilänge von 0 Byte. Sie können den ursprünglichen Aufruf an Copy File
wiederholen, um den Vorgang erneut auszuführen.
Abrechnung
Das Zielkonto eines Copy File
Vorgangs wird für eine Transaktion berechnet, um den Vorgang zu starten. Das Zielkonto verursacht für jede Anforderung auch eine Transaktion, um den Status des Kopiervorgangs abzubrechen oder anzufordern.
Wenn sich die Quelldatei oder der Blob in einem anderen Konto befindet, verursacht das Quellkonto Transaktionskosten. Wenn sich die Quell- und Zielkonten in verschiedenen Regionen (z. B. "USA Nord" und "US Süd") befinden, wird die Bandbreite, die Sie zum Übertragen der Anforderung verwenden, als Ausgang auf das Quellkonto belastet. Der Ausgang zwischen Konten innerhalb derselben Region ist kostenlos.