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 | |
NFS |
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:
|
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:
|
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 true lyckas 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
, failed
eller 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.