Blokk elhelyezése URL-címről
A Put Block From URL
művelet létrehoz egy új blokkot, amely egy blob részeként lesz véglegesítve, ahol a tartalom egy URL-címről lesz beolvasva. Ez az API a 2018-03-28-as verziótól érhető el.
Kérés
A kérést az Put Block From URL
alábbiak szerint hozhatja létre. Javasoljuk, hogy HTTPS-t használjon. Cserélje le a myaccount kifejezést a tárfiók nevére:
PUT metóduskérés URI-ja | HTTP-verzió |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id |
HTTP/1.1 |
Emulált tárolási szolgáltatás kérése
Amikor kérést küld az emulált tárolási szolgáltatásra, adja meg az emulátor gazdagépnevét és a Blob-szolgáltatás portját , 127.0.0.1:10000
majd az emulált tárfiók nevét:
PUT metóduskérés URI-ja | HTTP-verzió |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id |
HTTP/1.1 |
További információ: Az Azurite emulátor használata helyi Azure Storage-fejlesztéshez.
URI-paraméterek
Paraméter | Leírás |
---|---|
blockid |
Kötelező. A blokkot azonosító érvényes Base64-sztringérték. A kódolás előtt a sztringnek 64 bájtnál kisebbnek vagy egyenlőnek kell lennie. Egy adott blob esetében a paraméter megadott értékének blockid minden blokkhoz azonos méretűnek kell lennie.Megjegyzés: A Base64 sztringnek URL-kódolásúnak kell lennie. |
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 szolgáltatásműveletekhez. |
Kérésfejlécek
A szükséges és nem kötelező kérésfejléceket az alábbi táblázat 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érelmek 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érelmek engedélyezése az Azure Storage-ba. |
x-ms-version |
Minden engedélyezett kéréshez szükséges. A kérelemhez használandó művelet verzióját adja meg. További információ: Az Azure Storage-szolgáltatások verziószámozása. A esetében Put Block From URL a verziónak 2018-03-28-nak vagy újabbnak kell lennie. |
Content-Length |
Kötelező. A kérelem törzsében továbbított bájtok számát adja meg. A fejléc értékét 0-ra kell állítani. Ha a hossz nem 0, a művelet 400-ás állapotkóddal meghiúsul (hibás kérés). |
x-ms-copy-source:name |
Kötelező. A forrásblob URL-címét adja meg. Az érték legfeljebb 2 kibájt (KiB) hosszúságú URL-cím lehet, amely blobot határoz meg. Az értéknek URL-kódolásúnak kell lennie, ahogy az a kérelem URI-jában is megjelenik. A forrásblobnak nyilvánosnak vagy közös hozzáférésű jogosultságkóddal engedélyezettnek kell lennie. Ha a forrásblob nyilvános, a művelet végrehajtásához nincs szükség engedélyezésre. Í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> |
x-ms-copy-source-authorization: <scheme> <signature> |
Választható. Megadja a másolási forrás engedélyezési sémáját és aláírását. További információ: Kérelmek engedélyezése az Azure Storage-ba. A Microsoft Entra csak tulajdonosi sémát támogat. Ez a fejléc a 2020-10-02-s és újabb verziókban támogatott. |
x-ms-source-range |
Választható. Csak a blob bájtjainak feltöltése a forrás URL-címében a megadott tartományban. Ha ez a fejléc nincs megadva, a teljes forrásblob tartalma egyetlen blokkként lesz feltöltve. További információ: A blobszolgáltatás műveleteinek tartományfejlécének megadása. |
x-ms-source-content-md5 |
Választható. A blokktartalom MD5-kivonata az URI-ból. Ez a kivonat a blokk integritásának ellenőrzésére szolgál az adatok URI-ból történő átvitele során. Ha ez a fejléc meg van adva, a tárolási szolgáltatás összehasonlítja a másolási forrásból érkezett tartalom kivonatát ezzel a fejlécértékkel. Megjegyzés: Ez az MD5-kivonat nem a blobban van tárolva. Ha a két kivonat nem egyezik, a művelet a 400-es hibakóddal (hibás kérelem) meghiúsul. |
x-ms-source-content-crc64 |
Választható. A blokktartalom CRC64-kivonata az URI-ból. Ez a kivonat a blokk integritásának ellenőrzésére szolgál az adatok URI-ból történő átvitele során. Ha ez a fejléc meg van adva, a tárolási szolgáltatás összehasonlítja a másolási forrásból érkezett tartalom kivonatát ezzel a fejlécértékkel. Megjegyzés: Ez a CRC64-kivonat nem a blobban van tárolva. Ha a két kivonat nem egyezik, a művelet a 400-es hibakóddal (hibás kérelem) meghiúsul. Ha a és x-ms-source-content-crc64 a fejléc is x-ms-source-content-md5 jelen van, a kérés 400-zal (hibás kéréssel) meghiúsul.Ez a fejléc a 2019-02-02-s és újabb verziókban támogatott. |
x-ms-encryption-scope |
Választható. A forrástartalom titkosításához használandó titkosítási hatókört jelzi. Ez a fejléc a 2019-02-02-s és újabb verziókban támogatott. |
x-ms-lease-id:<ID> |
Akkor szükséges, ha a blob rendelkezik aktív bérlettal. Ha ezt a műveletet aktív bérlettel rendelkező blobon szeretné végrehajtani, adja meg a fejléc érvényes bérletazonosítóját. |
x-ms-client-request-id |
Választható. Ügyfél által generált, átlátszatlan értéket biztosít egy 1 kibibyte (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. További információ: Azure Blob Storage figyelése. |
Kérelemfejlécek (ügyfél által biztosított titkosítási kulcsok)
A 2019-02-02-es verziótól a következő fejlécek adhatók meg a blob ügyfél által megadott kulccsal történő titkosítására irányuló kérelemben. Az ügyfél által megadott kulccsal (és a megfelelő fejléckészlettel) történő titkosítás nem kötelező.
Kérelem fejléce | Leírás |
---|---|
x-ms-encryption-key |
Kötelező. A Base64 kódolású AES-256 titkosítási kulcs. |
x-ms-encryption-key-sha256 |
Kötelező. A titkosítási kulcs Base64 kódolású SHA256 kivonata. |
x-ms-encryption-algorithm: AES256 |
Kötelező. Megadja a titkosításhoz használandó algoritmust. A fejléc értékének a következőnek kell lennie AES256 : . |
A kérés törzse
Nincsenek.
Mintakérés
Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1
Request Headers:
x-ms-version: 2018-03-28
x-ms-date: Sat, 31 Mar 2018 14:37:35 GMT
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=
Content-Length: 0
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-499
Reagálás
A válasz egy HTTP-állapotkódot és válaszfejléceket tartalmaz.
Állapotkód
A sikeres művelet a 201-et (Létrehozva) állapotkódot adja vissza.
További információ az állapotkódokról: Á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 |
---|---|
Content-MD5 |
A visszaadott érték, hogy az ügyfél ellenőrizni tudja az üzenet tartalomintegritását. A fejléc értékét a Blob Storage számítja ki. Ez nem feltétlenül ugyanaz, mint a kérelemfejlécekben megadott érték. A 2019-02-02-s és újabb verziók esetében ez a fejléc csak akkor jelenik meg, ha a kérelemhez tartozik ez a fejléc. |
x-ms-content-crc64 |
A 2019-02-02-s és újabb verziókhoz. A visszaadott érték, hogy az ügyfél ellenőrizni tudja az üzenet tartalomintegritását. A fejléc értékét a Blob Storage számítja ki. Ez nem feltétlenül ugyanaz, mint a kérelemfejlécekben megadott érték. Akkor adja vissza, ha x-ms-source-content-md5 a fejléc nem szerepel a kérelemben. |
x-ms-request-id |
Egyedileg azonosítja a végrehajtott kérést, és segítségével elháríthatja a kérést. További információ: API-műveletek hibaelhárítása. |
x-ms-version |
A kérés végrehajtásához használt Blob Storage-verzió. |
Date |
A szolgáltatás által létrehozott UTC dátum/idő érték, amely a válasz indításának időpontját jelzi. |
x-ms-request-server-encrypted: true/false |
2015-12-11-es és újabb verziók. Ennek a fejlécnek az értéke akkor true van beállítva, ha a blokk tartalma sikeresen titkosítva van a megadott algoritmussal. Ellenkező esetben az érték értékre false van állítva. |
x-ms-encryption-key-sha256 |
2019-02-02-es és újabb verzió. Akkor adja vissza, ha a kérés ügyfél által megadott kulcsot használt a titkosításhoz, így az ügyfél a megadott kulccsal meggyőződhet arról, hogy a kérés tartalma sikeresen titkosítva van. |
x-ms-encryption-scope |
2019-02-02-es és újabb verzió. Akkor adja vissza, ha a kérelem titkosítási hatókört használt, így az ügyfél meggyőződhet arról, hogy a kérés tartalma sikeresen titkosítva van a titkosítási hatókör használatával. |
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 kérelemben szereplő fejléc értékével, és az érték legfeljebb 1024 látható ASCII-karaktert tartalmaz. Ha a x-ms-client-request-id fejléc nem szerepel a kérelemben, akkor az nem jelenik meg a válaszban. |
Mintaválasz
Response Status:
HTTP/1.1 201 Created
Response Headers:
Transfer-Encoding: chunked
x-ms-content-crc64: 77uWZTolTHU
Date: Sat, 31 Mar 2018 23:47:09 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
Engedélyezés
Az azure storage-beli adathozzáférési műveletek meghívásakor engedélyezés szükséges. A műveletet az Put Block From URL
alábbiak szerint engedélyezheti.
Fontos
A Microsoft a Microsoft Entra ID felügyelt identitásokkal való használatát javasolja az Azure Storage felé irányuló kérések engedélyezéséhez. Microsoft Entra ID a megosztott kulcsos hitelesítéshez képest kiemelkedő biztonságot és könnyű használatot biztosít.
Az Azure Storage támogatja a 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 rendszerbiztonsági tagnak. A rendszerbiztonsági tag lehet felhasználó, csoport, alkalmazás-szolgáltatásnév vagy Azure-beli felügyelt identitás. A rendszerbiztonsági tag hitelesítését a Microsoft Entra ID végzi egy OAuth 2.0-jogkivonat visszaadásához. A jogkivonat ezután a Blob szolgáltatásra irányuló 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: Blobokhoz való hozzáférés engedélyezése Microsoft Entra ID használatával.
Engedélyek
Az alábbiakban azokat az RBAC-műveletet soroljuk fel, amelyek szükségesek ahhoz, hogy egy Microsoft Entra felhasználó, csoport, felügyelt identitás vagy szolgáltatásnév meghívja a műveletet, valamint a legkevésbé emelt jogosultságú beépített Azure RBAC-szerepkört, amely tartalmazza ezt a Put Block From URL
műveletet:
- Azure RBAC-művelet:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- Legkevésbé kiemelt beépített szerepkör:Storage-blobadatok közreműködője
A szerepkörök Azure RBAC-vel való hozzárendelésével kapcsolatos további információkért lásd: Azure-szerepkör hozzárendelése blobadatokhoz való hozzáféréshez.
Megjegyzések
Put Block From URL
feltölt egy blokkot a blokkblob későbbi felvételéhez. A blokkblobok legfeljebb 50 000 blokkot tartalmazhatnak. Az egyes blokkok mérete eltérő lehet. A feltöltött Put Block From URL
blokkok maximális mérete 100 bájt (MiB). Nagyobb blokkok (legfeljebb 4000 MiB) feltöltéséhez lásd: Blokk elhelyezése.
A 2020-10-02-es és újabb verziókban Microsoft Entra hitelesítés támogatott a másolási művelet forrásához.
A blobok legfeljebb 100 000 nem véglegesített blokktal rendelkezhetnek bármikor. Ha túllépi ezt a maximumot, a szolgáltatás a 409-es állapotkódot adja vissza (RequestEntityTooLargeBlockCountExceedsLimit).
Az alábbi táblázat a maximálisan engedélyezett blokk- és blobméreteket ismerteti a szolgáltatásverzió szerint:
Szolgáltatás verziója | Maximális blokkméret (keresztül Put Block From URL ) |
Maximális blobméret (keresztül Put Block List ) |
Maximális blobméret egyetlen írási művelettel (keresztül Put Blob From URL ) |
---|---|---|---|
2020-04-08-es és újabb verzió | 4000 MiB | Körülbelül 190,7 terabájt (TiB) (4000 MiB × 50 000 blokk) | 5000 MiB |
2020.04.08-nál korábbi verziók | 100 MiB | Körülbelül 4,75 TiB (100 MiB × 50 000 blokk) | 256 MiB |
Miután feltöltött egy blokkkészletet, ebből a készletből létrehozhatja vagy frissítheti a blobot a kiszolgálón a Tiltólista elhelyezése művelet meghívásával. A készlet minden blokkját egy blokkazonosító azonosítja, amely egyedi az adott blobban. A blokkazonosítók hatóköre egy adott blobra terjed ki, így a különböző blobok blokkjai azonos azonosítókkal rendelkezhetnek.
Ha olyan blobot hív meg Put Block From URL
, amely még nem létezik, a rendszer létrehoz egy új blokkblobot 0 tartalomhosszúságúként. Ezt a blobot a List Blobs
művelet számba adja, ha a include=uncommittedblobs
beállítás meg van adva. A feltöltött blokkok vagy blokkok nem lesznek véglegesítve, amíg nem hívja Put Block List
meg az új blobot. Az így létrehozott blobok egy hétig megmaradnak a kiszolgálón. Ha ebben az időszakban nem adott hozzá több blokkot vagy véglegesített blokkot a blobhoz, a blob szemétgyűjtés alatt áll.
A művelettel Put Block From URL
sikeresen feltöltött blokkok mindaddig nem válnak blob részévé, amíg le nem véglegesítve a következővel Put Block List
: . Az új vagy frissített blob véglegesítése előtt Put Block List
a Blob lekérése hívásai a nem véglegesített blokk felvétele nélkül adják vissza a blob tartalmát.
Ha olyan blokkot tölt fel, amely ugyanazzal a blokkazonosítóval rendelkezik, mint egy másik blokk, amelyet még nem véglegesített, az utolsó feltöltött blokk az azonosítóval véglegesítve lesz a következő sikeres Put Block List
művelet során.
A meghívás után Put Block List
a blokklistában megadott összes nem véglegesített blokk véglegesítve lesz az új blob részeként. A blob blokklistájában nem megadott véglegesített blokkok a Blob Storage-ból gyűjtött és eltávolított szemét. A nem véglegesített blokkok szintén szemétgyűjtésre kerülnek, ha az utolsó sikeres Put Block From URL
műveletet követő egy héten belül nem történik sikeres hívás Put Block From URL
Put Block List
ugyanazon a blobon. Ha a Put Blob meghívása a blobon történik, a nem véglegesített blokkok szemétgyűjtést hajtanak ki.
Ha a blob rendelkezik aktív bérletmel, az ügyfélnek meg kell adnia egy érvényes bérletazonosítót a blokk blobba való írására vonatkozó kérelemhez. Ha az ügyfél nem ad meg bérletazonosítót, vagy érvénytelen bérletazonosítót ad meg, a Blob Storage a 412-s állapotkódot adja vissza (az előfeltétel sikertelen). Ha az ügyfél bérletazonosítót ad meg, de a blobnak nincs aktív bérlete, a Blob Storage a 412-s állapotkódot is visszaadja (az előfeltétel sikertelen).
Egy megadott blob esetében az összes blokkazonosítónak azonos hosszúságúnak kell lennie. Ha a rendszer feltölt egy blokkot a blokkazonosítóktól eltérő hosszúságú blokkazonosítóval a meglévő nem véglegesített blokkok esetében, a szolgáltatás a 400-ás hibaválaszkódot adja vissza (hibás kérés).
A hívás Put Block From URL
nem frissíti egy meglévő blob utolsó módosítási időpontját.
Egy Put Block From URL
lapblob hívása hibát ad vissza.
Az Put Block From URL
"archív" blob hívása hibát ad vissza, és a vagy cool
blobon való hot
hívás nem változtatja meg a blobszintet.
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 Put Block From URL
mutatja be:
Művelet | Tárfiók típusa | Számlázási kategória |
---|---|---|
Letiltás URL-címről (célfiók 1) | Prémium szintű blokkblob Standard általános célú v2 Standard általános célú v1 |
Írási műveletek |
Letiltás URL-címről (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.
2A forrásfiók egy tranzakcióval jár a forrásobjektumnak küldött olvasási kérésekhez.
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.
A megadott számlázási kategóriák díjszabásával kapcsolatban lásd: Azure Blob Storage Díjszabás.