Copy Blob
A Copy Blob
művelet egy blobot másol a tárfiókon belüli célhelyre.
A 2012-02-12-es és újabb verzióban a művelet forrása Copy Blob
bármely Azure Storage-fiókban véglegesített blob lehet.
A 2015-02-21-es verziótól kezdődően a Copy Blob
művelet forrása bármely Azure-tárfiók azure-fájlja lehet.
Megjegyzés
Csak a 2012. június 7-én vagy azt követően létrehozott tárfiókok engedélyezik a Copy Blob
művelet másolását egy másik tárfiókból.
Kérés
A kérést a Copy Blob
következőképpen hozhatja létre. A HTTPS használatát javasoljuk. Cserélje le a myaccount nevet a tárfiók nevére, a mycontainert a tároló nevére, a myblobot pedig a célblob nevére.
A 2013-08-15-ös verziótól kezdődően megadhat egy közös hozzáférésű jogosultságkódot (SAS) a célblobhoz, ha az ugyanabban a fiókban található, mint a forrásblob. A 2015-04-05-ös verziótól kezdődően megadhatja a célblob megosztott hozzáférési aláírását is, ha az egy másik tárfiókban található.
PUT metódus kérésének URI-ja | HTTP-verzió |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob |
HTTP/1.1 |
URI az emulált tárolási szolgáltatáshoz
Amikor kérést küld az emulált tárolási szolgáltatásra, adja meg az emulátor gazdagépének nevét és Azure Blob Storage portot a következőként127.0.0.1:10000
: , majd az emulált tárfiók neve:
PUT metódus kérésének URI-ja | HTTP-verzió |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob |
HTTP/1.1 |
További információ: Az Azurite emulátor használata helyi Azure Storage-fejlesztéshez.
URI-paraméterek
A kérelem URI-ján a következő további paramétereket adhatja meg:
Paraméter | Leírás |
---|---|
timeout |
Választható. A timeout paraméter másodpercben van kifejezve. További információ: Időtúllépések beállítása Blob Storage-műveletekhez. |
Kérésfejlécek
Az alábbi táblázat a szükséges és nem kötelező kérésfejléceket ismerteti:
Kérelem fejléce | Leírás |
---|---|
Authorization |
Kötelező. Megadja az engedélyezési sémát, a fióknevet és az aláírást. További információ: Kérések engedélyezése az Azure Storage-ba. |
Date vagy x-ms-date |
Kötelező. Megadja a kérés egyezményes világidő (UTC) formátumban kifejezett időpontját. További információ: Kérések engedélyezése az Azure Storage-ba. |
x-ms-version |
Minden engedélyezett kéréshez szükséges. További információ: Az Azure Storage-szolgáltatások verziószámozása. |
x-ms-meta-name:value |
Választható. A blobhoz társított felhasználó által definiált név/érték pár megadása. Ha nincs megadva név/érték pár, a művelet átmásolja a metaadatokat a forrásblobból vagy fájlból a célblobba. Ha egy vagy több név-érték pár van megadva, a célblob a megadott metaadatokkal jön létre, és a metaadatok nem lesznek átmásolva a forrásblobból vagy fájlból. A 2009-09-19-es verziótól kezdődően a metaadatok nevének meg kell felelnie a C#-azonosítók elnevezési szabályainak. További információ: Tárolók, blobok és metaadatok elnevezése és hivatkozása. |
x-ms-tags |
Választható. Beállítja a megadott lekérdezési sztringbe kódolt címkéket a blobon. A program nem másolja a címkéket a másolási forrásból. További információ: Megjegyzések. A 2019-12-12-es és újabb verziókban támogatott. |
x-ms-source-if-modified-since |
Választható. Egy DateTime érték. Ezt a feltételes fejlécet csak akkor adja meg a blob másolásához, ha a forrásblob a megadott dátum/idő óta módosult. Ha a forrásblob nincs módosítva, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel sikertelen). Ezt a fejlécet nem adhatja meg, ha a forrás egy Azure-fájl. |
x-ms-source-if-unmodified-since |
Választható. Egy DateTime érték. Ezt a feltételes fejlécet csak akkor adja meg a blob másolásához, ha a forrásblob a megadott dátum/idő óta nem lett módosítva. Ha a forrásblob módosult, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel nem sikerült). Ezt a fejlécet nem adhatja meg, ha a forrás egy Azure-fájl. |
x-ms-source-if-match |
Választható. Egy ETag érték. Adja meg ezt a feltételes fejlécet a forrásblob másolásához, ha az ETag értéke megegyezik a megadott értékkel. Ha az értékek nem egyeznek, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel sikertelen). Ezt a fejlécet nem adhatja meg, ha a forrás egy Azure-fájl. |
x-ms-source-if-none-match |
Választható. Egy ETag érték. Adja meg ezt a feltételes fejlécet a blob másolásához, ha az ETag értéke nem egyezik meg a megadott értékkel. Ha az értékek azonosak, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel sikertelen). Ezt a fejlécet nem adhatja meg, ha a forrás egy Azure-fájl. |
If-Modified-Since |
Választható. Egy DateTime érték. Adja meg ezt a feltételes fejlécet a blob másolásához, ha a célblob a megadott dátum/idő óta módosult. Ha a célblob nem lett módosítva, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel nem sikerült). |
If-Unmodified-Since |
Választható. Egy DateTime érték. Adja meg ezt a feltételes fejlécet a blob másolásához, ha a célblob nem lett módosítva a megadott dátum/idő óta. Ha a célblob módosult, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel nem sikerült). |
If-Match |
Választható. Egy ETag érték. Adjon meg egy ETag értéket a feltételes fejléchez a blob másolásához, ha a megadott ETag érték megegyezik ETag egy meglévő célblob értékével. Ha az értékek nem egyeznek, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel sikertelen). |
If-None-Match |
Választható. Érték ETag vagy helyettesítő karakter (*).Adjon meg egy ETag értéket a feltételes fejléchez a blob másolásához, ha a megadott ETag érték nem egyezik meg a ETag célblob értékével.Adja meg a helyettesítő karaktert (*), hogy csak akkor hajtsa végre a műveletet, ha a célblob nem létezik. Ha a megadott feltétel nem teljesül, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel sikertelen). |
x-ms-copy-source:name |
Kötelező. Megadja a forrásblob vagy fájl nevét. A 2012-02-12-es verziótól kezdve ez az érték legfeljebb 2 kibibájt (KiB) hosszúságú URL-cím lehet, amely blobot határoz meg. Az értéknek úgy kell kódolnia az URL-címet, ahogyan az a kérelem URI-jában is megjelenik. Az ugyanabban a tárfiókban lévő forrásblob olvasási művelete megosztott kulccsal engedélyezhető. A 2017-11-09-es verziótól kezdve a Microsoft Entra ID használatával engedélyezheti az olvasási műveletet a forrásblobon. Ha azonban a forrás egy másik tárfiókban található blob, a forrásblobnak nyilvánosnak kell lennie, vagy a hozzáférésnek egy közös hozzáférésű jogosultságkóddal kell rendelkeznie. Ha a forrásblob nyilvános, a másolási művelet végrehajtásához nincs szükség engedélyezésre. A 2015-02-21-es verziótól kezdve a forrásobjektum fájl lehet Azure Files. Ha a forrásobjektum egy blobba másolandó fájl, akkor a forrásfájlt közös hozzáférésű jogosultságkóddal kell engedélyezni, függetlenül attól, hogy ugyanabban a fiókban vagy egy másik fiókban található-e. Csak a 2012. június 7-én vagy azt követően létrehozott tárfiókok engedélyezik a Copy Blob művelet másolását egy másik tárfiókból.Íme néhány példa a forrásobjektum URL-címére: - https://myaccount.blob.core.windows.net/mycontainer/myblob - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime> - https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime> Ha a forrásobjektum egy Azure Files fájl, a forrás URL-címe a következő formátumot használja. Vegye figyelembe, hogy az URL-címnek tartalmaznia kell egy érvényes SAS-jogkivonatot a fájlhoz. - https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sastoken A 2012-02-12 előtti verziókban a blobok csak ugyanazon a fiókon belül másolhatók, és a forrásnév a következő formátumokat használhatja: - Blob nevesített tárolóban: /accountName/containerName/blobName - Pillanatkép a nevesített tárolóban: /accountName/containerName/blobName?snapshot=<DateTime> - Blob a gyökértárolóban: /accountName/blobName – Pillanatkép a gyökértárolóban: /accountName/blobName?snapshot=<DateTime> |
x-ms-lease-id:<ID> |
Kötelező, ha a célblob rendelkezik aktív bérlettal. A fejléchez megadott bérletazonosítónak meg kell egyeznie a célblob bérletazonosítójával. Ha a kérelem nem tartalmazza a bérletazonosítót, vagy az azonosító nem érvényes, a művelet a 412-ös állapotkóddal meghiúsul (az előfeltétel sikertelen). Ha ez a fejléc meg van adva, és a célblob jelenleg nem rendelkezik aktív bérlettel, a művelet a 412-s állapotkóddal meghiúsul (az előfeltétel sikertelen). A 2012-02-12-es és újabb verziókban ennek az értéknek aktív végtelen bérletet kell megadnia egy bérelt blobhoz. A véges időtartamú bérletazonosító a 412-ös állapotkóddal meghiúsul (az előfeltétel sikertelen). |
x-ms-source-lease-id: <ID> |
Nem kötelező a 2012-02-12 előtti verziókhoz (2012-02-12-ben és újabb verziókban nem támogatott). Ezt a fejlécet csak akkor adja meg a Copy Blob művelet végrehajtásához, ha a megadott bérletazonosító megegyezik a forrásblob aktív bérletazonosítójával.Ha ez a fejléc meg van adva, és a forrásblob jelenleg nem rendelkezik aktív bérlettel, a művelet a 412-s állapotkóddal meghiúsul (az előfeltétel sikertelen). |
x-ms-client-request-id |
Választható. Ügyfél által generált, átlátszatlan értéket biztosít 1 KiB karakterkorláttal, amelyet a naplózás konfigurálásakor rögzít a naplókban. Javasoljuk, hogy ezt a fejlécet használva korrelálja az ügyféloldali tevékenységeket a kiszolgáló által kapott kérésekkel. |
x-ms-access-tier |
Választható. Meghatározza a célblobon beállítandó szintet. Ez a fejléc csak a 2017-04-17-es és újabb verziójú prémium fiók lapblobjaira vonatkozik. A támogatott szintek teljes listájáért lásd: Nagy teljesítményű prémium szintű tárolás és felügyelt lemezek virtuális gépekhez. Ez a fejléc a blokkblobok 2018-11-09-es és újabb verzióiban támogatott. A blokkblobok rétegezése blobtárolókban vagy általános célú v2-fiókokban támogatott. Az érvényes értékek a következők: Hot , Cool Cold és Archive .
Megjegyzés:Cold A szint a 2021-12-02-es és újabb verziókban támogatott. A blokkblobok rétegzésével kapcsolatos részletes információkért lásd: Gyakori elérésű, ritka elérésű és archív tárolási szintek. |
x-ms-rehydrate-priority |
Választható. Azt a prioritást jelzi, amellyel egy archivált blobot rehidratálhat. Ez a fejléc a blokkblobok 2019-02-02-es és újabb verzióiban támogatott. Az érvényes értékek a következők: High és Standard . A blobok prioritását csak egyszer állíthatja be. Ezt a fejlécet a rendszer figyelmen kívül hagyja az ugyanazon blobra irányuló további kérések esetén. Az alapértelmezett prioritás a fejléc nélkül: Standard . |
x-ms-seal-blob |
Választható. A 2019-12-12-es vagy újabb verzió támogatott. Ez a fejléc csak hozzáfűző blobokra érvényes. A másolási művelet befejezése után lezárja a célblobot. |
x-ms-immutability-policy-until-date |
2020-06-12-es és újabb verzió. Megadja a blobon beállítandó adatmegőrzési dátumot. Ez az a dátum, ameddig a blob védhető a módosítástól vagy törléstől. Ez RFC1123 formátumot követi. |
x-ms-immutability-policy-mode |
2020-06-12-es és újabb verzió. Meghatározza a blobon beállítandó módosíthatatlansági szabályzatmódot. Az érvényes értékek a következők: unlocked és locked . Egy unlocked érték azt jelzi, hogy a felhasználó módosíthatja a szabályzatot a megőrzési dátum növelésével vagy csökkentésével. Egy locked érték azt jelzi, hogy ezek a műveletek tiltottak. |
x-ms-legal-hold |
2020-06-12-es és újabb verzió. Megadja a blobon beállítandó jogi célú visszatartást. Az érvényes értékek a következők: true és false . |
Ez a művelet csak akkor támogatja a és x-ms-source-if-tags
a x-ms-if-tags
feltételes fejlécek sikerességét, ha a megadott feltétel teljesül. További információ: Feltételes fejlécek megadása Blob Storage-műveletekhez.
A kérés törzse
Nincsenek.
Reagálás
A válasz egy HTTP-állapotkódot és válaszfejléceket tartalmaz.
Állapotkód
A 2012-02-12-es és újabb verziókban a sikeres művelet a 202-es (Elfogadva) állapotkódot adja vissza.
A 2012-02-12 előtti verziókban a sikeres művelet a 201-et (Létrehozva) állapotkódot adja vissza.
Az állapotkódokkal kapcsolatos információkért lásd: Állapot- és hibakódok.
Válaszfejlécek
A műveletre adott válasz a következő fejléceket tartalmazza. A válasz további szabványos HTTP-fejléceket is tartalmazhat. Minden szabványos fejléc megfelel a HTTP/1.1 protokoll specifikációjának.
Válaszfejléc | Description |
---|---|
ETag |
A 2012-02-12-es és újabb verziókban, ha a másolat elkészült, ez a fejléc tartalmazza a ETag célblob értékét. Ha a másolás nem fejeződött be, a fejléc tartalmazza a ETag másolási művelet elején létrehozott üres blob értékét.A 2012-02-12 előtti verziókban ez a fejléc a ETag célblob értékét adja vissza.A 2011-08-18-es és újabb verziókban az ETag érték idézőjelek között van. |
Last-Modified |
Azt a dátumot/időpontot adja vissza, amikor a célblob másolási művelete befejeződött. |
x-ms-request-id |
Egyedileg azonosítja a végrehajtott kérést. Ezzel a fejléccel elháríthatja a kérést. További információ: API-műveletek hibaelhárítása. |
x-ms-version |
A Blob Storage azon verzióját jelzi, amely a kérés végrehajtásához használatos. Ez a fejléc lesz visszaadva a 2009-09-19-es és újabb verzióval kapcsolatos kérésekhez. |
Date |
UTC dátum/idő érték, amely azt az időpontot jelzi, amikor a szolgáltatás elküldte a választ. |
x-ms-copy-id: <id> |
2012-02-12-es és újabb verzió. Sztringazonosítót biztosít ehhez a másolási művelethez. Használja a vagy Get Blob Properties a parancsot Get Blob a másolási művelet állapotának ellenőrzéséhez, vagy adja át a parancsot a függőben lévő másolási művelet megszakításáhozAbort Copy Blob . |
x-ms-copy-status: <success ¦ pending> |
2012-02-12-es és újabb verzió. A másolási művelet állapotát jelzi az alábbi értékekkel: - success : A művelet sikeresen befejeződött.- pending : A művelet folyamatban van. |
x-ms-version-id: <DateTime> |
2019-12-12-es és újabb verzió. Egyedileg azonosítja a blobot a verziója alapján. Ezt az átlátszatlan értéket a későbbi kérésekben használhatja a blob ezen verziójának eléréséhez. |
x-ms-client-request-id |
A kérések és a megfelelő válaszok hibaelhárítására használható. A fejléc értéke megegyezik a x-ms-client-request-id fejléc értékével, ha az szerepel a kérelemben, és az érték legfeljebb 1024 látható ASCII-karakterből áll. Ha a x-ms-client-request-id fejléc nincs jelen a kérelemben, ez a fejléc nem lesz jelen a válaszban. |
Választörzs
Nincsenek.
Mintaválasz
Az alábbi kód egy blob másolására irányuló kérés mintaválasza:
Response Status:
HTTP/1.1 202 Accepted
Response Headers:
Last-Modified: <date>
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/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
x-ms-version-id: <DateTime>
Date: <date>
Engedélyezés
Az azure storage-beli adathozzáférési műveletek meghívásakor engedélyezés szükséges. Az alábbi táblázat bemutatja, hogyan engedélyezhetők egy művelet cél- és forrásobjektumai Copy Blob
:
Objektumtípus | Microsoft Entra ID engedélyezés | Közös hozzáférésű jogosultságkód (SAS) engedélyezése | Megosztott kulcs engedélyezése (vagy Shared Key Lite) |
---|---|---|---|
Célblob | Igen | Igen | Yes |
Forrásblob ugyanabban a tárfiókban | Igen | Igen | Yes |
Forrásblob egy másik tárfiókban | Nem | Igen | Nem |
Ha egy kérelem címkéket ad meg a x-ms-tags
kérelem fejlécében, a hívónak meg kell felelnie a Blobcímkék beállítása művelet engedélyezési követelményeinek.
A műveletet az Copy Blob
alábbiak szerint engedélyezheti. Vegye figyelembe, hogy egy másik tárfiókban lévő forrásblobot külön kell engedélyezni SAS-jogkivonaton keresztül , olvasási (r) engedéllyel. A forrásblobok engedélyezéséről további információt a kérelem fejlécének x-ms-copy-source
részleteiben talál.
Fontos
A Microsoft azt javasolja, hogy Microsoft Entra ID felügyelt identitásokkal engedélyezze az Azure Storage-ra irányuló kéréseket. Microsoft Entra ID a megosztott kulcs engedélyezéséhez képest kiváló biztonságot és könnyű használatot biztosít.
Az Azure Storage támogatja az Microsoft Entra ID használatát a blobadatokra irányuló kérések engedélyezéséhez. A Microsoft Entra ID azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) adhat engedélyeket egy biztonsági tagnak. A rendszerbiztonsági tag lehet felhasználó, csoport, alkalmazásszolgáltatásnév vagy Azure-beli felügyelt identitás. A rendszerbiztonsági tagot a Microsoft Entra ID hitelesíti egy OAuth 2.0-jogkivonat visszaadásához. A jogkivonat ezután a Blob szolgáltatással szembeni kérések engedélyezésére használható.
További információ a Microsoft Entra ID használatával történő engedélyezésről: Blobok hozzáférésének engedélyezése Microsoft Entra ID használatával.
Engedélyek
Az alábbiakban felsoroljuk azt az RBAC-műveletet, amely a művelet meghívásához Copy Blob
szükséges Microsoft Entra felhasználóhoz, csoporthoz, felügyelt identitáshoz vagy szolgáltatásnévhez, valamint a legkevésbé emelt szintű beépített Azure RBAC-szerepkörhöz, amely tartalmazza ezt a műveletet:
Célblob
- Azure RBAC-művelet:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (meglévő blobba való íráshoz) vagy Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (új blob célhelyre írásához)
- Legkevésbé emelt szintű beépített szerepkör:Storage-blobadatok közreműködője
Forrásblob ugyanabban a tárfiókban
- Azure RBAC-művelet:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
- Legkevésbé emelt szintű beépített szerepkör:Storage Blob-adatolvasó
A szerepkörök Azure RBAC-vel való hozzárendeléséről további információt az Azure-szerepkör hozzárendelése a blobadatokhoz való hozzáféréshez című témakörben talál.
Megjegyzések
A 2012-02-12-es és újabb verziókban a Copy Blob
művelet aszinkron módon fejeződhet be. Ez a művelet egy másolási azonosítót ad vissza, amellyel ellenőrizheti vagy megszakíthatja a másolási műveletet. A másolási művelet aszinkron jellege miatt a Blob Storage a lehető legjobb erőfeszítéssel másolja a blobokat. A Blob szolgáltatás akkor másolja a blobokat, ha más feladatok nem használják a kiszolgálói erőforrásokat, így a másolatok nem garantáltan azonnal elindulnak vagy befejeződnek egy megadott időkeretben.
A másolási művelet forrásblobja lehet blokkblob, hozzáfűző blob, lapblob vagy pillanatkép. Ha a célblob már létezik, annak a forrásblob típusával megegyező típusúnak kell lennie. A meglévő célblobok felülíródnak. A célblob nem módosítható, amíg a másolási művelet folyamatban van.
A 2015-02-21-es és újabb verziókban a másolási művelet forrása is lehet egy fájl a Azure Files. Ha a forrás egy fájl, a célnak blokkblobnak kell lennie.
Egy fiókon belül több függőben lévő Copy Blob
művelet is feldolgozható egymás után. A célblobok csak egy kiemelkedő Copy Blob
művelettel rendelkezhetnek. Más szóval a blob nem lehet több függőben lévő Copy Blob
művelet célja. A blobnak egy olyan célblobba való másolása, amely már függőben van egy másolási művelettel, a 409-es állapotkód (ütközés) meghiúsul.
Csak a 2012. június 7-én vagy azt követően létrehozott tárfiókok engedélyezik a Copy Blob
művelet másolását egy másik tárfiókból. Egy másik tárfiókból egy 2012. június 7. előtt létrehozott fiókba történő másolási kísérlet a 400-ás állapotkóddal meghiúsul (hibás kérés).
A Copy Blob
művelet mindig a teljes forrásblobot vagy fájlt másolja át. A bájtok vagy blokkok egy tartományának másolása nem támogatott.
A Copy Blob
műveletek a következő űrlapok bármelyikét igénybe vehetik:
A forrásblobokat átmásolhatja egy másik nevű célblobba. A célblob lehet ugyanahhoz a blobtípushoz tartozó meglévő blob (blokk, hozzáfűzés vagy oldal), vagy lehet egy új blob, amelyet a másolási művelet létrehoz.
A forrásblobokat átmásolhatja egy azonos nevű célblobba, így gyakorlatilag lecserélheti a célblobot. Az ilyen másolási művelet eltávolítja a nem véglegesített blokkokat, és felülírja a blob metaadatait.
A forrásfájlokat Azure Files átmásolhatja egy célblobba. A célblob lehet egy meglévő blokkblob, vagy egy új blokkblob, amelyet a másolási művelet létrehoz. A fájlokról lapblobokra vagy hozzáfűző blobokra történő másolás nem támogatott.
A pillanatképeket átmásolhatja az alapblobjára. A pillanatképnek az alap blob helyzetére való előléptetésével visszaállíthatja a blob egy korábbi verzióját.
A pillanatképeket átmásolhatja egy másik nevű célblobba. Az eredményként kapott célblob egy írható blob, és nem pillanatkép.
Amikor lapblobból másol, a Blob Storage létrehoz egy céllapblobot a forrásblob hosszában. A lapblob kezdetben az összes nullát tartalmazza. Ezután a forráslaptartományok felsorolása és a nem üres tartományok másolása.
Blokkblob vagy hozzáfűző blob esetén a Blob Storage nulla hosszúságú végleges blobot hoz létre, mielőtt visszatér ebből a műveletből.
Ha blokkblobból másol, a rendszer minden véglegesített blokkot és azok blokkazonosítóját másolja. A nem véglegesített blokkok nem lesznek másolva. A másolási művelet végén a célblob ugyanazzal a véglegesített blokkszámtal rendelkezik, mint a forrás.
Ha hozzáfűző blobból másol, a program az összes véglegesített blokkot átmásolja. A másolási művelet végén a célblob kevesebb véglegesített blokkot fog rendelkezni, mint a forrásblob.
A másolási művelet állapotának ellenőrzéséhez minden blobtípus esetében meghívhatja Get Blob
a célblobot vagy Get Blob Properties
a célblobot. A végső blob véglegesítése a másolási művelet befejeződésekor történik.
Ha a másolási művelet forrása értékeket ad ETag
meg, a másolási művelet közben a forrás módosításai a művelet sikertelenségéhez vezetnek. A célblob módosítására tett kísérlet, amíg a másolat folyamatban van, a 409-es állapotkód (ütközés) meghiúsul. Ha a célblob végtelen bérletet kapott, a bérletazonosítót át kell adni a következőnek: Copy Blob
. A véges időtartamú bérletek nem engedélyezettek.
A ETag
blokkblobok értéke a Copy Blob
művelet indításakor és a művelet befejeződésekor változik. A ETag
lapblobok értéke a Copy Blob
művelet indításakor megváltozik, és a másolási művelet során is gyakran változik. A blokkblobok tartalma csak a teljes másolási művelet befejeződése után látható egy Get
parancson keresztül.
Blobtulajdonságok, címkék és metaadatok másolása
Blob másolásakor a rendszer a következő rendszertulajdonságokat másolja a célblobba, amely ugyanazokat az értékeket tartalmazza:
Content-Type
Content-Encoding
Content-Language
Content-Length
Cache-Control
Content-MD5
Content-Disposition
x-ms-blob-sequence-number
(csak lapblobok esetén)x-ms-committed-block-count
(csak hozzáfűző blobokhoz és csak a 2015-02-21-es verzióhoz)
A forrásblob véglegesített blokklistája szintén a célblobba lesz másolva, ha a blob blokkblob. A nem véglegesített blokkok nem lesznek másolva.
A célblob mérete mindig megegyezik a forrásblob méretével. A célblob fejlécének Content-Length
értéke megegyezik a forrásblob fejlécének értékével.
Ha a forrásblob és a célblob megegyezik, Copy Blob
eltávolítja a nem véglegesített blokkokat. Ha ebben az esetben metaadatokat ad meg, a meglévő metaadatok felülíródnak az új metaadatokkal.
Ha a x-ms-tags
fejléc címkéket tartalmaz a célblobhoz, akkor lekérdezési sztring kódolásúnak kell lenniük. A címkekulcsoknak és -értékeknek meg kell felelniük a Blobcímkék beállítása című témakörben megadott elnevezési és hosszkövetelményeknek.
A x-ms-tags
fejléc legfeljebb 2 kilobit címkét tartalmazhat. Ha további címkékre van szüksége, használja a Set Blob Tags
műveletet.
Ha a x-ms-tags
fejléc nem ad meg címkéket, akkor a program nem másolja ki a címkéket a forrásblobból.
Bérelt blob másolása
A Copy Blob
művelet csak a forrásblobból olvas, így a forrásblob bérletállapota nem számít. A Copy Blob
művelet azonban a másolási művelet indításakor menti ETag
a forrásblob értékét. Ha az ETag
érték a másolási művelet befejeződése előtt megváltozik, a művelet sikertelen lesz. A forrásblob módosítását megakadályozhatja, ha lízingeli azt a másolási művelet során.
Ha a célblob aktív végtelen bérlettel rendelkezik, meg kell adnia a bérletazonosítóját a Copy Blob
művelet hívásában. Ha a megadott bérlet egy aktív, véges időtartamú bérlet, a hívás a 412-s állapotkóddal meghiúsul (az előfeltétel sikertelen). Amíg a másolási művelet függőben van, a célblob bérletművelete a 409-ben (Ütközés) állapotkóddal meghiúsul. A másolási művelet során a célblob végtelen bérlete zárolva van, függetlenül attól, hogy a forrástól eltérő nevű célblobba másol, a forrás nevével azonos nevű célblobba másol, vagy egy pillanatképet előléptet az alapblobon.
Ha az ügyfél egy még nem létező blob bérletazonosítóját adja meg, a Blob Storage a 2013-08-15-es és újabb verzióval kapcsolatos kérések esetében a 412-es állapotkódot adja vissza (előfeltétele nem sikerült). A korábbi verziók esetében a Blob Storage a 201-ben (Létrehozva) állapotkódot adja vissza.
Blob-pillanatképek másolása
Forrásblob másolásakor a rendszer nem másolja a forrásblob pillanatképeit vagy verzióit a célhelyre. Ha egy célblobot felülír egy másolattal, a célblobhoz társított pillanatképek vagy verziók érintetlenek maradnak a neve alatt.
Másolási műveletet hajthat végre, hogy előléptesse a pillanatképet az alapblobján, feltéve, hogy online szinten van (gyakori vagy ritka elérésű). Ily módon visszaállíthatja a blob egy korábbi verzióját. A pillanatkép megmarad, de a célhelyet felülírja egy olyan másolattal, amely olvasható és írható is.
Blobverziók másolása
Másolási műveletet hajthat végre, hogy előléptesse a verziót az alapblobján, feltéve, hogy online szinten van (gyakori vagy ritka elérésű). Ily módon visszaállíthatja a blob egy korábbi verzióját. A verzió megmarad, de a célhelyet felülírja egy olyan másolattal, amely olvasható és írható is.
Archivált blob másolása
A 2018-11-09-es verziótól kezdődően egy archivált blobot másolhat egy új blobba ugyanabban a tárfiókban. A forrásblob az archív szinten marad. Ha a forrásblob archivált blob, a kérésnek tartalmaznia kell a x-ms-access-tier
fejlécet, amely a célblob szintjét jelzi. A cél blobnak online szinten kell lennie. Az archív szinten lévő blobba nem másolható.
A 2021-02-12-es verziótól kezdődően egy archivált blobot egy másik tárfiók online rétegére másolhat, feltéve, hogy a célfiók ugyanabban a régióban található, mint a forrásfiók.
A kérés meghiúsulhat, ha a forrásblob rehidratálva van.
A blokkblobszintek rétegzésével kapcsolatos részletes információkért lásd: Gyakori elérésű, ritka elérésű és archív tárolási szintek.
Függőben lévő másolási művelet használata (2012-02-12-es és újabb verzió)
Ha a Copy Blob
művelet aszinkron módon fejeződik be, a következő táblázat segítségével határozza meg a következő lépést a visszaadott állapotkód alapján:
Állapotkód | Értelmezés |
---|---|
202 (Elfogadva), x-ms-copy-status: success | A másolási művelet sikeresen befejeződött. |
202 (Elfogadva), x-ms-copy-status: pending | A másolási művelet még nem fejeződött be. A célblob lekérdezéséhez Get Blob Properties vizsgálja meg a fejlécet, x-ms-copy-status amíg a művelet befejeződik vagy meghiúsul. |
4xx, 500 vagy 503 | A másolási művelet nem sikerült. |
A Copy Blob
művelet során és után a célblob tulajdonságai tartalmazzák a művelet másolási azonosítóját és a Copy Blob
forrásblob URL-címét. Amikor a művelet befejeződik, a Blob Storage a célblob tulajdonságaiba írja az idő- és eredményértéket (success
, failed
vagy aborted
). Ha a művelet eredménye van failed
, a x-ms-copy-status-description
fejléc tartalmaz egy hibainformációs sztringet.
Egy függőben lévő Copy Blob
művelet kéthetes időtúllépéssel rendelkezik. Egy másolási kísérlet, amely két hét után nem fejeződött be, és üres blobot hagy, amelynek x-ms-copy-status
a mezője failed
x-ms-copy-status-description
500 (OperationCancelled) értékű. A másolási művelet során előforduló időszakos, nem végzetes hibák akadályozhatják a művelet előrehaladását, de nem okoznak hibát. Ezekben az esetekben x-ms-copy-status-description
az időszakos hibákat írja le.
A másolási művelet során a célblob módosítására vagy pillanatképére tett kísérletek a 409-es állapotkóddal (ütközés), a "Blob másolása folyamatban" hibával meghiúsulnak.
Ha meghívja a Abort Copy Blob
műveletet, megjelenik egy x-ms-copy-status:aborted
fejléc. A célblob ép metaadatokat és 0 bájt hosszúságú blobokat fog létrehozni. A másolási művelet ismételt kipróbálásához Copy Blob
ismételje meg az eredeti hívást.
Ha a Copy Blob
művelet szinkronban fejeződik be, a másolási művelet állapotának meghatározásához használja az alábbi táblázatot:
Állapotkód | Értelmezés |
---|---|
202 (Elfogadva), x-ms-copy-status: success | A másolási művelet sikeresen befejeződött. |
4xx, 500 vagy 503 | A másolási művelet nem sikerült. |
A szint a prémium szintű tárolási szintekhez öröklődik. Blokkblobok esetén a célblob felülírása örökli a gyakori vagy ritka elérésű szintet a céltól, ha x-ms-access-tier
nincs megadva. Az archivált blob felülírása sikertelen lesz. A blokkblobszintek rétegzésével kapcsolatos részletes információkért lásd: Gyakori elérésű, ritka elérésű és archív tárolási szintek.
Számlázás
A díjszabási kérések a Blob Storage API-kat használó ügyfelektől, közvetlenül a Blob Storage REST API-ból vagy egy Azure Storage-ügyfélkódtárból származhatnak. Ezek a kérések tranzakciónkénti díjakat halmoznak fel. A tranzakció típusa befolyásolja a fiók terhelését. Az olvasási tranzakciók például más számlázási kategóriába tartoznak, mint az írási tranzakciók. Az alábbi táblázat a tárfiók típusa alapján a kérelmek számlázási kategóriáját Copy Blob
mutatja be:
Művelet | Tárfiók típusa | Számlázási kategória |
---|---|---|
Blob másolása (célfiók 1) | Prémium szintű blokkblob Standard általános célú v2 Standard általános célú v1 |
Írási műveletek |
Blob másolása (2. forrásfiók) | Prémium szintű blokkblob Standard általános célú v2 Standard általános célú v1 |
Olvasási műveletek |
1A célfiókot egy tranzakcióra terheljük az írás kezdeményezéséhez.
2Ha a forrásobjektum egy másik fiókban található, a forrásfiók minden olvasási kérelemhez egy tranzakciót bonyolít a forrásobjektumhoz.
A megadott számlázási kategóriák díjszabásával kapcsolatban lásd: Azure Blob Storage Díjszabás.
A célfiók tranzakciós költségekkel is jár a másolási művelet megszakítására irányuló kérések esetében (lásd: Blob másolásának megszakítása), vagy a másolási művelet állapotának ellenőrzése (lásd: Blob lekérése vagy Blob tulajdonságainak lekérése).
Ezenkívül ha a forrás- és célfiókok különböző régiókban (például az USA északi régiójában és az USA déli régiójában) találhatók, a kérés átviteléhez használt sávszélességet kimenő forgalomként számítjuk fel a forrás tárfiókra. Az ugyanazon régión belüli fiókok közötti kimenő forgalom ingyenes.
Amikor egy forrásblobot egy másik nevű célblobba másol egy fiókon belül, további tárolási erőforrásokat használ az új blobhoz. A másolási művelet ezt követően díjat számít fel a tárfiók kapacitáshasználatával kapcsolatban a további erőforrások esetében. Ha azonban a forrás- és célblobok neve megegyezik ugyanazon a fiókon belül (például amikor előléptet egy pillanatképet az alap blobjára), a 2012-02-12-es és újabb verzióban tárolt további másolási metaadatokon kívül nem merül fel további költség.
Amikor előléptet egy pillanatképet az alapblob helyére, a pillanatkép és az alapblob azonos lesz. Blokkokat vagy lapokat osztanak meg, így a másolási művelet nem eredményez többletköltséget a tárfiók kapacitáshasználatával szemben. Ha azonban egy másik nevű célblobba másol egy pillanatképet, az a művelet többletköltséget von maga után az eredményként kapott új blob által használt tárolási erőforrásokért. Két különböző nevű blob nem oszthat meg blokkokat vagy lapokat, még akkor sem, ha azonosak. A pillanatképek költségforgatókönyveiről további információt A pillanatképek díjtételeinek ismertetése című témakörben talál.
Lásd még
Kérések engedélyezése az Azure Storage-ba
Állapot- és hibakódok
Blob Storage-hibakódok
A pillanatképek díjtételeinek ismertetése
Blob másolásának megszakítása