Dela via


Kopiera fil

Åtgärden Copy File kopierar en blob eller fil till en målfil i lagringskontot. Den här åtgärden stöds i version 2015-02-21 och senare för filresurser med SMB-protokollet aktiverat och stöds i version 2025-05-05 och senare för filresurser med NFS-protokollet aktiverat.

Protokolltillgänglighet

Aktiverat filresursprotokoll Tillgänglig
SMB Ja
NFS Ja

Begäran

Den Copy File begäran skapas på följande sätt. Vi rekommenderar att du använder HTTPS.

Från och med version 2013-08-15 kan du ange en signatur för delad åtkomst för målfilen om den finns i samma konto som källfilen. Från och med version 2015-04-05 kan du också ange en signatur för delad åtkomst för målfilen om den finns i ett annat lagringskonto.

Metod Begärande-URI HTTP-version
STÄLLA https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile HTTP/1.1

Ersätt sökvägskomponenterna som visas i begärande-URI:n med dina egna enligt följande:

Sökvägskomponent Beskrivning
myaccount Namnet på ditt lagringskonto.
myshare Namnet på filresursen.
mydirectorypath Valfri. Sökvägen till den överordnade katalogen.
myfile Namnet på filen.

Mer information om namngivningsbegränsningar för sökvägar finns i Namngivnings- och referensresurser, kataloger, filer och metadata.

URI-parametrar

Du kan ange följande ytterligare parametrar på begärande-URI:n:

Parameter Beskrivning
timeout Valfri. Parametern timeout uttrycks i sekunder. Mer information finns i Ange tidsgränser för Azure Files-åtgärder.

Begärandehuvuden

De obligatoriska och valfria begäranderubrikerna beskrivs i följande tabeller:

Vanliga begärandehuvuden

Begärandehuvud Beskrivning
Authorization Krävs. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage.
Date eller x-ms-date Krävs. Anger UTC (Coordinated Universal Time) för begäran. Mer information finns i Auktorisera begäranden till Azure Storage.
x-ms-version Krävs för alla auktoriserade begäranden. Anger vilken version av åtgärden som ska användas för den här begäran. Den här åtgärden stöds i version 2015-02-21 och senare för filresurser med SMB-protokollet aktiverat och stöds i version 2025-05-05 och senare för filresurser med NFS-protokollet aktiverat.

Mer information finns i Versionshantering för Azure Storage-tjänsterna.
x-ms-meta-name:value Valfri. Anger namn/värde-par som är associerade med filen som metadata. Om inga namn/värdepar anges kopierar åtgärden metadata från källbloben eller -filen till målfilen. Om ett eller flera namn/värdepar anges skapas målfilen med angivna metadata och metadata kopieras inte från källbloben eller -filen. Metadatanamn måste följa namngivningsreglerna för C#-identifierare.

Filmetadata som anges via Azure Files är inte tillgängliga från en SMB-klient.
x-ms-copy-source:name Krävs. Anger URL:en för källfilen eller bloben, upp till 2 kibibyte (KiB) i längd.

Om du vill kopiera en fil till en annan fil inom samma lagringskonto kan du använda en delad nyckel för att auktorisera källfilen. Om du kopierar en fil från ett annat lagringskonto, eller om du kopierar en blob från samma lagringskonto eller ett annat lagringskonto, måste du auktorisera källfilen eller bloben med hjälp av en signatur för delad åtkomst. Om källan är en offentlig blob krävs ingen auktorisering för att utföra kopieringsåtgärden. Du kan också ange en fil i en resursögonblicksbild som en kopieringskälla.

Här är några exempel på url:er för källobjekt:
  • https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile
  • https://myaccount.blob.core.windows.net/mycontainer/myblob?sastoken
  • http://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sharesnapshot=<DateTime>
x-ms-lease-id:<ID> Krävs om målfilen har ett aktivt lån. Tillgänglig för version 2019-02-02 och senare. Låne-ID:t som angetts för den här rubriken måste matcha låne-ID:t för målfilen. Om begäran inte innehåller låne-ID:t eller om ID:t inte är giltigt misslyckas åtgärden med statuskoden 412 (förhandsvillkoret misslyckades).

Om det här huvudet har angetts och målfilen för närvarande inte har något aktivt lån misslyckas åtgärden med statuskoden 412 (förhandsvillkoret misslyckades).

Det här huvudet ignoreras om målfilen finns på en filresurs med NFS-protokollet aktiverat, vilket inte stöder fillån.
x-ms-file-creation-time Valfri. Tillgänglig för version 2019-07-07 och senare. Det här huvudet anger egenskapen för skapandetid, i UTC, som ska anges för målfilen. Du kan använda värdet source för att kopiera skapandetiden från källfilen till målfilen.
x-ms-file-last-write-time Valfri. Tillgänglig för version 2019-07-07 och senare. Det här huvudet anger egenskapen för senaste skrivtid, i UTC, som ska anges för målfilen. Du kan använda värdet source för att kopiera den senaste skrivtiden från källfilen till målfilen.
x-ms-client-request-id Valfri. Tillhandahåller ett klientgenererat, täckande värde med en 1-KiB-teckengräns som registreras i loggarna när loggningen konfigureras. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. Mer information finns i Övervaka Azure Blob Storage-.
x-ms-file-request-intent Krävs om Authorization rubrik anger en OAuth-token. Acceptabelt värde är backup. Det här huvudet anger att Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action eller Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action ska beviljas om de ingår i RBAC-principen som tilldelats den identitet som är auktoriserad med hjälp av Authorization-huvudet. Tillgänglig för version 2022-11-02 och senare.
x-ms-allow-trailing-dot: { <Boolean> } Valfri. Version 2022-11-02 och senare. Det booleska värdet anger om en avslutande punkt som finns i begärande-URL:en ska trimmas eller inte.

Det här huvudet ignoreras om målet finns på en filresurs med NFS-protokollet aktiverat, vilket stöder avslutande punkt som standard.

Mer information finns i Namngivning och referens av resurser, kataloger, filer och metadata.
x-ms-source-allow-trailing-dot: { <Boolean> } Valfri. Version 2022-11-02 och senare. Det booleska värdet anger om en avslutande punkt som finns i käll-URL:en ska trimmas eller inte. Det här huvudet bör endast anges om kopieringskällan finns på en Azure-filresurs. Det här huvudet stöds inte för någon annan typ av kopieringskälla.

Det här huvudet ignoreras om kopieringskällan finns på en filresurs med NFS-protokollet aktiverat, vilket stöder avslutande punkt som standard.

Mer information finns i Namngivning och referens av resurser, kataloger, filer och metadata.

Endast SMB-begärandehuvuden

Begärandehuvud Beskrivning
x-ms-file-change-time: { <DateTime> ¦ source } Valfri. Version 2021-06-08 och senare. EGENSKAPEN UTC-ändringstid för filen, formaterad i FORMATET ISO 8601. Ett värde på source kan användas för att kopiera ändringstiden från källfilen till målfilen. Standardtidsstämpeln är tiden för begäran.
x-ms-file-permission-copy-mode: { source ¦ override } Valfri. Tillgänglig för version 2019-07-07 och senare. Avgör kopieringsbeteendet för säkerhetsbeskrivningen för filen:
  • source: Säkerhetsbeskrivningen för målfilen kopieras från källfilen.
  • override: Säkerhetsbeskrivningen för målfilen bestäms via x-ms-file-permission- eller x-ms-file-permission-key-huvudet.
x-ms-file-permission: { <SDDL> ¦ <binary> } Krävs om x-ms-file-permission-copy-mode anges som override och x-ms-file-permission-key inte har angetts. Tillgänglig för version 2019-07-07 och senare. Den här behörigheten är säkerhetsbeskrivningen för filen som anges i SDDL (Security Descriptor Definition Language) eller (version 2025-01-05 eller senare) i base64-kodad binär säkerhetsbeskrivningsformat. Du kan ange vilket format som ska användas med x-ms-file-permission-format-huvudet. Du kan använda det här huvudet om behörighetsstorleken är 8 kibibyte (KiB) eller mindre. Annars kan du använda x-ms-file-permission-key. Om den anges måste den ha en diskretionär åtkomstkontrollista (DACL).

Endast en av x-ms-file-permission eller x-ms-file-permission-key kan anges.
x-ms-file-permission-key Krävs om x-ms-file-permission-copy-mode anges som override och x-ms-file-permission inte har angetts. Tillgänglig för version 2019-07-07 och senare. Det här huvudet anger nyckeln för den behörighet som ska anges för filen. Du kan skapa den här nyckeln med hjälp av åtgärden Create Permission.

Endast en av x-ms-file-permission eller x-ms-file-permission-key kan anges.
x-ms-file-permission-format: { sddl ¦ binary } Valfri. Version 2025-01-05 eller senare. Anger om värdet som skickas i x-ms-file-permission är i SDDL eller i binärt format. Om det här huvudet inte har angetts används standardvärdet för sddl.
x-ms-file-attributes Valfri. Tillgänglig för version 2019-07-07 och senare. Det här huvudet anger vilka filsystemattribut som ska anges i målfilen. Se listan över tillgängliga attribut. Du kan använda värdet source för att kopiera attributen från källfilen till målfilen. Du kan använda värdet none för att rensa alla attribut i målfilen.
x-ms-file-copy-ignore-readonly Valfri. Tillgänglig för version 2019-07-07 och senare. Det här booleska värdet anger om attributet ReadOnly på en befintlig målfil ska respekteras. Om det är truelyckas kopieringsåtgärden. Annars misslyckas kopieringsåtgärden genom att en tidigare fil på målet med ReadOnly-attributuppsättningen.
x-ms-file-copy-set-archive Valfri. Tillgänglig för version 2019-07-07 och senare. Det här booleska värdet anger om attributet Archive ska anges, oavsett x-ms-file-attributes rubrikvärde.

Endast NFS-begärandehuvuden

Begärandehuvud Beskrivning
x-ms-file-mode-copy-mode: { source ¦ override } Valfri. Version 2025-05-05 och senare. Gäller endast när kopieringskällan är en fil som finns på en filresurs med NFS-protokollet aktiverat. Avgör kopieringsbeteendet för filens lägesbitar:
  • source: Läget på målfilen kopieras från källfilen.
  • override: Läget på målfilen bestäms via x-ms-mode-huvudet.
x-ms-mode Version 2025-05-05 och senare. Krävs om x-ms-file-mode-copy-mode anges som override. De lägesbitar som ska anges i filen. Läget representeras i 12-bitars numeriskt oktalt format eller det symboliska rwx-formatet. Se POSIX-filbehörigheter (läge).
x-ms-file-owner-copy-mode: { source ¦ override } Valfri. Version 2025-05-05 och senare. Gäller endast när kopieringskällan är en fil som finns på en filresurs med NFS-protokollet aktiverat. Avgör kopieringsbeteendet för användarens användaridentifierare (UID) och gruppidentifierare (GID) för filen:
  • source: Användarens användaridentifierare (UID) och gruppidentifierare (GID) i målfilen kopieras från källfilen.
  • override: Användaridentifierare för ägare (UID) och gruppidentifierare (GID) i målfilen bestäms via x-ms-owner respektive x-ms-group rubriker.
x-ms-owner Version 2025-05-05 och senare. Användaridentifieraren (UID) för filägaren som ska anges för filen. Krävs om x-ms-file-owner-copy-mode anges som override.
x-ms-group Version 2025-05-05 och senare. Gruppidentifieraren (GID) för den filägare som ska anges för filen. Krävs om x-ms-file-owner-copy-mode anges som override.

Begärandetext

Ingen.

Svar

Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.

Statuskod

En lyckad åtgärd returnerar statuskoden 202 (godkänd). Information om statuskoder finns i Status och felkoder.

Svarshuvuden

Svaret för den här åtgärden innehåller rubrikerna i följande tabeller. Svaret kan också innehålla ytterligare HTTP-standardhuvuden. Alla standardhuvuden överensstämmer med HTTP/1.1-protokollspecifikationen.

Vanliga svarshuvuden

Svarsrubrik Beskrivning
ETag Om kopieringsåtgärden har slutförts innehåller den ETag värdet för målfilen. Om kopieringsåtgärden inte har slutförts innehåller ETag värdet för den tomma fil som skapades i början av åtgärden.
Last-Modified Returnerar datum/tid då kopieringsåtgärden till målfilen har slutförts.
x-ms-request-id Identifierar unikt den begäran som gjordes. Du kan använda det här huvudet för att felsöka begäran. Mer information finns i Felsöka API-åtgärder.
x-ms-version Anger vilken version av Azure Files som används för att köra begäran.
Date Ett UTC-datum/tid-värde som anger den tid då tjänsten skickade svaret.
x-ms-copy-id: <id> Tillhandahåller en strängidentifierare för den här kopieringsåtgärden. Använd med Get File eller Get File Properties för att kontrollera status för den här kopieringsåtgärden eller skicka till Abort Copy File för att avbryta en väntande kopieringsåtgärd.
x-ms-copy-status: <success ¦ pending> Anger tillståndet för kopieringsåtgärden med följande värden:

- success: Kopieringsåtgärden har slutförts.
- pending: Kopieringsåtgärden pågår fortfarande.
x-ms-client-request-id Kan användas för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet för x-ms-client-request-id-huvudet om det finns i begäran och värdet är högst 1 024 synliga ASCII-tecken. Om x-ms-client-request-id-huvudet inte finns i begäran visas inte det här huvudet i svaret.

Endast SMB-svarshuvuden

Ingen.

Endast NFS-svarshuvuden

Ingen.

Svarstext

Ingen

Exempelsvar

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>  

Tillstånd

Den här åtgärden kan anropas av kontoägaren eller av en klient som har en signatur för delad åtkomst som har behörighet att skriva till målfilen eller dess resurs. Observera att signaturen för delad åtkomst som anges i begäran endast gäller för målfilen.

Åtkomst till källfilen eller bloben auktoriseras separat, enligt beskrivningen i informationen för begärandehuvudet x-ms-copy-source.

I följande tabell beskrivs hur mål- och källobjekt för en Copy File åtgärd kan auktoriseras:

Fil Auktorisering med delad nyckel eller delad nyckel Lite Auktorisering med signatur för delad åtkomst Offentligt objekt kräver inte auktorisering
Målfil Ja Ja Ej tillämpligt
Källfil i samma konto Ja Ja Ej tillämpligt
Källfil i ett annat konto Nej Ja Ej tillämpligt
Källblob i samma konto eller ett annat konto Nej Ja Ja

Filsystemattribut

Attribut Win32-filattribut Definition
ReadOnly FILE_ATTRIBUTE_READONLY Filen är skrivskyddad. Program kan läsa filen men kan inte skriva till den eller ta bort den.
Hidden FILE_ATTRIBUTE_HIDDEN Filen är dold. Den ingår inte i en vanlig kataloglista.
System FILE_ATTRIBUTE_SYSTEM Operativsystemet använder en del av filen, eller så använder det filen exklusivt.
None FILE_ATTRIBUTE_NORMAL Filen har inte andra attribut angivna. Det här attributet är endast giltigt när det används ensamt.
Archive FILE_ATTRIBUTE_ARCHIVE Filen är en arkivfil. Program använder vanligtvis det här attributet för att markera filer för säkerhetskopiering eller borttagning.
Temporary FILE_ATTRIBUTE_TEMPORARY Filen används för tillfällig lagring.
Offline FILE_ATTRIBUTE_OFFLINE Filens data är inte tillgängliga omedelbart. Det här filsystemattributet ger främst kompatibilitet med Windows. Azure Files stöder det inte med lagringsalternativ offline.
NotContentIndexed FILE_ATTRIBUTE_NOT_CONTENT_INDEXED Innehållsindexeringstjänsten indexerar inte filen.
NoScrubData FILE_ATTRIBUTE_NO_SCRUB_DATA Skannern för bakgrundsdataintegritet läser inte användardataströmmen. Det här filsystemattributet ger främst kompatibilitet med Windows.

POSIX-filbehörigheter (läge)

POSIX-filbehörigheter kan anges antingen numeriskt i ett 12-bitars numeriskt oktalt format eller i ett symboliskt "rwx"-format. Exempel:

  • "0644" eller "rw-r--r--": Användaren (filägaren) har läs-, skrivbehörighet. Gruppen har läsbehörighet. Andra har läsbehörighet.
  • "0755" eller "rwxr-xr-x": Användaren (filägaren) har läs-, skriv- och körningsbehörighet. Gruppen har läs- och körningsbehörighet. Andra har läs- och körningsbehörighet.

Numeriskt oktalt format

De tre lägsta oktala nummerordningen representerar behörigheterna för ägare/användare, grupp och andra och anges med ett oktalt tal (0-7), som bildas med hjälp av en bitvis kombination av "4" (Läs), "2" (Skriv), "1" (Kör). Det högsta oktala antalet i ordningen (0–7) används för att ange en kombination av behörigheterna "4" (SetUID), "2" (SetGID), "1" (StickyBit).

Format Tillåtelse
0700 Användaren (filägaren) har läs-, skriv- och körningsbehörighet.
0400 Användaren har läsbehörighet.
0200 Användaren har skrivbehörighet.
0100 Användaren har körningsbehörighet.
0070 Gruppen har läs-, skriv- och körningsbehörighet.
0040 Gruppen har läsbehörighet.
0020 Gruppen har skrivbehörighet.
0010 Gruppen har körningsbehörighet.
0007 Andra har läs-, skriv- och körningsbehörighet.
0004 Andra har läsbehörighet.
0002 Andra har skrivbehörighet.
0001 Andra har körningsbehörighet.
4000 Ange ett effektivt användar-ID för filen.
2000 Ange effektivt grupp-ID för filen.
1000 Ange för att ange att filen endast kan tas bort eller byta namn på filens ägare, katalogägare eller rotanvändare.

Symboliskt "rwx"-format

Behörigheter för ägare/användare, grupp och andra anges med hjälp av en kombination av tecknen "r" (Läs), "w" (Skrivning) och "x" (Kör).

Format Tillåtelse
rwx------ Användaren (filägaren) har läs-, skriv- och körningsbehörighet.
r-------- Användaren har läsbehörighet.
-w------- Användaren har skrivbehörighet.
--x------ Användaren har körningsbehörighet.
---rwx--- Gruppen har läs-, skriv- och körningsbehörighet.
-------- Gruppen har läsbehörighet.
----w---- Gruppen har skrivbehörighet.
-----x--- Gruppen har körningsbehörighet.
------rwx Andra har läs-, skriv- och körningsbehörighet.
------r... Andra har läsbehörighet.
------- Andra har skrivbehörighet.
--------x Andra har körningsbehörighet.

Anmärkningar

Åtgärden Copy File kan slutföras asynkront. Du kan använda det kopierings-ID som x-ms-copy-id svarshuvudet returnerar för att kontrollera status för kopieringsåtgärden eller avbryta den. Azure Files kopierar filer på bästa sätt.

Om målfilen finns skrivs den över. Du kan inte ändra målfilen medan kopieringsåtgärden pågår.

Åtgärden Copy File kopierar alltid hela källbloben eller filen. Kopiering av ett intervall med byte eller en uppsättning block stöds inte.

Källan till en Copy File-åtgärd kan vara en fil som finns i en resursögonblicksbild. Målet för en Copy File åtgärd kan inte vara en fil som finns i en resursögonblicksbild.

När källan för en kopieringsåtgärd ger ETag värden, om det finns några ändringar i källan medan åtgärden pågår, misslyckas den. Ett försök att ändra målfilen medan en kopieringsåtgärd pågår misslyckas med statuskoden 409 (konflikt).

Det ETag värdet för målfilen ändras när åtgärden Copy File startar. Den fortsätter att ändras ofta under kopieringsåtgärden.

Kopiera egenskaper och metadata

När en blob eller fil kopieras kopieras följande systemegenskaper till målfilen med samma värden:

  • Content-Type
  • Content-Encoding
  • Content-Language
  • Content-Length
  • Cache-Control
  • Content-MD5
  • Content-Disposition

Målfilen har alltid samma storlek som källbloben eller -filen. Värdet för Content-Length-huvudet för målfilen matchar värdet för rubriken för källbloben eller -filen.

Kopiera en hyrd blob eller fil till en fil

Den Copy File åtgärden läser bara från källbloben eller -filen, så ett lån på källobjektet påverkar inte åtgärden. Åtgärden Copy File sparar ETag värdet för källbloben eller -filen när åtgärden startas. Om det ETag värdet ändras innan kopieringsåtgärden är klar misslyckas åtgärden. Du kan förhindra ändringar i källbloben för filen genom att hyra den under kopieringsåtgärden.

Om målfilen har ett aktivt oändligt lån måste du ange dess låne-ID i anropet till den Copy File åtgärden. Medan kopieringsåtgärden väntar misslyckas alla låneåtgärder på målfilen med statuskoden 409 (konflikt). Ett oändligt lån på målfilen är låst på det här sättet under kopieringsåtgärden, oavsett om du kopierar till en målfil som har ett annat namn än källan eller kopierar till en målfil med samma namn som källan. Om klienten anger ett låne-ID för en fil som ännu inte finns returnerar Azure Files statuskod 412 (förhandsvillkoret misslyckades).

Arbeta med en väntande kopieringsåtgärd

Åtgärden Copy File kan slutföra kopieringen av filerna asynkront. Använd följande tabell för att fastställa nästa steg baserat på statuskoden som Copy File returnerar:

Statuskod Betydelse
202 (accepterad), x-ms-copy-status: lyckades Kopieringsåtgärden har slutförts.
202 (accepterad), x-ms-copy-status: väntar Kopieringsåtgärden har inte slutförts. Avsök målbloben med hjälp av Get File Properties för att undersöka x-ms-copy-status tills kopieringsåtgärden har slutförts eller misslyckas.
4xx, 500 eller 503 Kopieringsåtgärden misslyckades.

Under och efter en Copy File-åtgärd innehåller egenskaperna för målfilen kopierings-ID:t för Copy File-åtgärden och URL:en för källbloben eller -filen. När åtgärden är klar skriver Azure Files tids- och utfallsvärdet (success, failedeller aborted) till målfilens egenskaper. Om åtgärden har ett failed resultat innehåller x-ms-copy-status-description-huvudet en feldetaljsträng.

En väntande Copy File åtgärd har en tidsgräns på två veckor. Ett kopieringsförsök som inte har slutförts efter två veckors tidsgräns och lämnar en tom fil med fältet x-ms-copy-status inställt på failed och fältet x-ms-status-description inställt på 500 (OperationCancelled). Tillfälliga, icke-dödliga fel som kan inträffa under en kopieringsåtgärd kan hindra åtgärdens förlopp men inte orsaka att den misslyckas. I dessa fall beskriver x-ms-copy-status-description de tillfälliga felen.

Alla försök att ändra målfilen under kopieringsåtgärden misslyckas med statuskoden 409 (konflikt), "Kopiera fil pågår".

Om du anropar en Abort Copy File-åtgärd visas ett x-ms-copy-status:aborted huvud. Målfilen har intakta metadata och en fillängd på 0 byte. Du kan upprepa det ursprungliga anropet till Copy File för att försöka utföra åtgärden igen.

Fakturering

Målkontot för en Copy File åtgärd debiteras för en transaktion för att starta åtgärden. Målkontot ådrar sig också en transaktion för varje begäran om att avbryta eller begära status för kopieringsåtgärden.

När källfilen eller blobben finns i ett annat konto medför källkontot transaktionskostnader. Om käll- och målkontona finns i olika regioner (till exempel USA, norra och USA, södra) debiteras dessutom bandbredden som du använder för att överföra begäran till källkontot som utgående. Utgående mellan konton inom samma region är kostnadsfri.

Se även