Kopiera fil

Åtgärden Copy File kopierar en blob eller fil till en målfil i lagringskontot.

Finns i version 2015-02-21 och senare.

Protokolltillgänglighet

Aktiverat filresursprotokoll Tillgängligt
SMB Ja
NFS No

Förfrågan

Du kan skapa begäran på Copy File följande sätt. Vi rekommenderar HTTPS.

Från och med version 2013-08-15 kan du ange en signatur för delad åtkomst för målfilen om den har 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 URI för förfrågan HTTP-version
PUT 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 Valfritt. Sökvägen till den överordnade katalogen.
myfile Namnet på filen.

Mer information om namngivningsbegränsningar för sökvägar finns i Namnge och referera till resurser, kataloger, filer och metadata.

URI-parametrar

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

Parameter Beskrivning
timeout Valfritt. Tidsgränsparametern uttrycks i sekunder. Mer information finns i Ange tidsgränser för Azure Files åtgärder.

Begärandehuvuden

I följande tabell beskrivs obligatoriska och valfria 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 Coordinated Universal Time (UTC) 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 är endast tillgänglig i version 2015-02-21 och senare.

Mer information finns i Versionshantering för Azure Storage-tjänsterna.
x-ms-meta-name:value Valfritt. Anger namn/värdepar som är associerade med filen som metadata. Om inga namn-/värdepar har angetts kopierar åtgärden metadata från källbloben eller -filen till målfilen. Om ett eller flera namn/värde-par 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.

Observera att filmetadata som anges via Azure Files inte är 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 i 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 anges för det här huvudet 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 (villkoret misslyckades).

Om det här huvudet har angetts och målfilen för närvarande inte har ett aktivt lån misslyckas åtgärden med statuskoden 412 (villkoret misslyckades).
x-ms-file-permission-copy-mode: { source ¦ override } Valfritt. Tillgänglig för version 2019-07-07 och senare. Avgör kopieringsbeteendet för filens säkerhetsbeskrivning:
  • source: Säkerhetsbeskrivning för målfilen kopieras från källfilen.
  • override: Säkerhetsbeskrivning för målfilen bestäms via x-ms-file-permission rubriken eller x-ms-file-permission-key .
x-ms-file-permission 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äkerhetsbeskrivning för filen som anges i SDDL (Security Descriptor Definition Language). 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 dacl (owner, group, and discretionary access control list).

Observera att 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 .

Observera att endast en av x-ms-file-permission eller x-ms-file-permission-key kan anges.
x-ms-file-copy-ignore-readonly Valfritt. Tillgänglig för version 2019-07-07 och senare. Det här booleska värdet anger om ReadOnly attributet för en befintlig målfil ska respekteras. Om det är truelyckas kopieringsåtgärden. Annars misslyckas kopieringsåtgärden i en tidigare fil på målet med ReadOnly attributuppsättningen.
x-ms-file-attributes Valfritt. 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 för att kopiera attributen från källfilen till målfilen. Du kan använda värdet none för för att rensa alla attribut i målfilen.
x-ms-file-creation-time Valfritt. Tillgänglig för version 2019-07-07 och senare. Det här huvudet anger egenskapen för skapandetiden, i UTC, som ska anges för målfilen. Du kan använda värdet source för för att kopiera skapandetiden från källfilen till målfilen.
x-ms-file-last-write-time Valfritt. Tillgänglig för version 2019-07-07 och senare. Det här huvudet anger egenskapen för den senaste skrivtiden i UTC som ska anges för målfilen. Du kan använda värdet source för för att kopiera den senaste skrivtiden från källfilen till målfilen.
x-ms-file-copy-set-archive Valfritt. Tillgänglig för version 2019-07-07 och senare. Det här booleska värdet anger om Archive attributet ska anges, oavsett x-ms-file-attributes rubrikvärdet.
x-ms-client-request-id Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en gräns på 1 KiB-tecken som registreras i loggarna när loggningen har konfigurerats. 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-change-time: { <DateTime> ¦ source } Valfritt. Version 2021-06-08 och senare. UTC-egenskapen för ändringstid för filen, formaterad i ISO 8601-format. source Värdet 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-request-intent Krävs om Authorization huvudet 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 DEN RBAC-princip som tilldelats den identitet som har behörighet med hjälp av Authorization huvudet. Tillgänglig för version 2022-11-02 och senare.
x-ms-allow-trailing-dot: { <Boolean> } Valfritt. 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. Mer information finns i Namnge och referera till resurser, kataloger, filer och metadata.
x-ms-source-allow-trailing-dot: { <Boolean> } Valfritt. 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. Den här rubriken ska endast anges om kopieringskällan är en Azure-fil. Det här huvudet stöds inte för någon annan typ av kopieringskälla. Mer information finns i Namnge och referera till resurser, kataloger, filer och metadata.

Begärandetext

Inga.

Svarsåtgärder

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

Statuskod

En lyckad åtgärd returnerar statuskod 202 (godkänd).

Information om statuskoder finns i Status och felkoder.

Svarshuvuden

Svaret för den här åtgärden innehåller följande rubriker. Svaret innehåller även ytterligare HTTP-standardhuvuden. Alla standardhuvuden överensstämmer med http/1.1-protokollspecifikationen.

Svarsrubrik Beskrivning
ETag Om kopieringsåtgärden har slutförts innehåller värdet för ETag målfilen. Om kopieringsåtgärden inte har slutförts innehåller värdet för den ETag tomma fil som skapades i början av åtgärden.
Last-Modified Returnerar datum/tid då kopieringsåtgärden till målfilen slutfördes.
x-ms-request-id Identifierar begäran som gjordes unikt. 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 datum-/tidsvärde för UTC 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 för att Abort Copy File 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 den här rubriken är lika med värdet x-ms-client-request-id för rubriken om det finns i begäran och värdet är högst 1 024 synliga ASCII-tecken. Om huvudet x-ms-client-request-id inte finns i begäran kommer det här huvudet inte att finnas i svaret.

Själva svaret

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>  

Auktorisering

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 Yes Inte tillämpligt
Källfil i samma konto Ja Yes Inte tillämpligt
Källfil i ett annat konto Inga Ja Inte tillämpligt
Källblob i samma konto eller ett annat konto Inga Ja Yes

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 använder 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 har inte stöd för offlinelagringsalternativ.
NotContentIndexed FILE_ATTRIBUTE_NOT_CONTENT_INDEXED Innehållsindexeringstjänsten indexerar inte filen.
NoScrubData FILE_ATTRIBUTE_NO_SCRUB_DATA Bakgrundsdataintegritetsskannern läser inte användardataströmmen. Det här filsystemattributet ger främst kompatibilitet med Windows.

Kommentarer

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

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 byteintervall eller en uppsättning block stöds inte.

Källan för 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.

Om källan för en kopieringsåtgärd innehåller 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 statuskod 409 (konflikt).

Värdet ETag för målfilen ändras när åtgärden startas Copy File . 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 rubriken 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

Åtgärden Copy File 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 värdet för ETag källbloben eller -filen när åtgärden startas. ETag Om värdet ändras innan kopieringsåtgärden har slutförts misslyckas åtgärden. Du kan förhindra ändringar i källbloben för filen genom att leasa 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 Copy File till åtgärden. Medan kopieringsåtgärden väntar misslyckas alla låneåtgärder i målfilen med statuskod 409 (konflikt). Ett oändligt lån för målfilen låses 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 Innebörd
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 Get File Properties av 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 Copy File för å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 x-ms-copy-status-description innehåller rubriken en felinformationssträng.

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

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

Om du anropar en Abort Copy File åtgärd visas ett x-ms-copy-status:aborted sidhuvud. Målfilen har intakta metadata och en fillängd på 0 byte. Du kan upprepa det ursprungliga anropet till för Copy File 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 bloben 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 trafik mellan konton inom samma region är kostnadsfri.

Se även