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. Az Azure Active Directory 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 tartalmaz egy HTTP-állapotkódot és egy válaszfejléceket.
Állapotkód
A sikeres művelet a 201-ben létrehozott á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 |
Visszaadva, hogy az ügyfél ellenőrizni tudja az üzenettartalom integritá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 a rendszer csak akkor adja vissza ezt a fejlécet, ha a kérelemhez ez a fejléc tartozik. |
x-ms-content-crc64 |
A 2019-02-02-s és újabb verziókhoz. Visszaadva, hogy az ügyfél ellenőrizni tudja az üzenettartalom integritását. A fejléc értékét a Blob Storage számítja ki. 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 a használatával 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ó. 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 a következőre false van állítva: . |
x-ms-encryption-key-sha256 |
2019-02-02-es és újabb verzió. Akkor adja vissza, ha a kérelem ügyfél által megadott kulcsot használt a titkosításhoz, így az ügyfél meggyőződhet arról, hogy a kérelem tartalma sikeresen titkosítva van a megadott kulccsal. |
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érelem 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 kapcsolódó 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-karaktert tartalmaz. Ha a x-ms-client-request-id fejléc nem szerepel a kérelemben, 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-ban bármilyen adathozzáférési művelet meghívásához engedélyezésre van szükség. A műveletet az Put Block From URL
alábbiak szerint engedélyezheti.
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 azokat az RBAC-műveletet soroljuk fel, amelyek szükségesek ahhoz, hogy egy Microsoft Entra felhasználó, csoport vagy szolgáltatásnév meghívja a Put Block From URL
műveletet, valamint a legkevésbé kiemelt beépített Azure RBAC-szerepkört, amely tartalmazza ezt a műveletet:
- Azure RBAC-művelet:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- Legkevésbé emelt szintű beépített szerepkör:Storage-blobadatok közreműködője
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
Put Block From URL
feltölt egy blokkot a blokkblobba való későbbi felvételhez. A blokkblobok legfeljebb 50 000 blokkot tartalmazhatnak. Az egyes blokkok mérete eltérő lehet. A feltöltött blokkok Put Block From URL
maximális mérete 100 mebibyte (MiB). Nagyobb blokkok (legfeljebb 4000 MiB) feltöltéséhez lásd: Blokk elhelyezése.
A 2020-10-02-es és újabb verziókban az Azure Active Directory-engedélyezés támogatott a másolási művelet forrásához.
A blobok legfeljebb 100 000 nem véglegesített blokkot tartalmazhatnak 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 (a használatával Put Block From URL ) |
Maximális blobméret (a használatával Put Block List ) |
Maximális blobméret egyetlen írási művelettel (a használatával 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 Blokklista elhelyezése művelet meghívásával. A készlet minden blokkját egy, az adott blobban egyedi blokkazonosító azonosítja. A blokkazonosítók hatóköre egy adott blobra terjed ki, így a különböző blobok ugyanazokkal az azonosítókkal rendelkező blokkokkal rendelkezhetnek.
Ha egy még nem létező blobot hív Put Block From URL
meg, egy 0-s tartalomhosszúságú új blokkblob jön létre. 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 az adott időszakon belül nem adott hozzá további blokkokat vagy véglegesített blokkokat a blobhoz, a blob szemétgyűjtésre kerül.
A művelettel Put Block From URL
sikeresen feltöltött blokkok mindaddig nem lesznek blobok részei, amíg le nem véglegesítve a következővel Put Block List
: . Az új vagy frissített blob véglegesítéséhez szükséges meghívás előtt Put Block List
a Get Blob hívásai a nem véglegesített blokk belefoglalása 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, még le nem véglegesített blokk, a következő sikeres Put Block List
művelet során véglegesítve lesz az adott azonosítóval rendelkező utolsó feltöltött blokk.
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, nem véglegesített blokkok szemétként lesznek összegyűjtve és eltávolítva a Blob Storage-ból. A nem véglegesített blokkok akkor is szemétként lesznek összegyűjtve, 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 vagy blobon. Ha a Put Blob meghívása a blobon történik, a nem véglegesített blokkok szemétgyűjtésre kerülnek.
Ha a blob rendelkezik aktív bérletmel, az ügyfélnek érvényes bérletazonosítót kell megadnia a blokk blobba írására irányuló kérelemben. 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 megad egy bérletazonosítót, de a blobnak nincs aktív bérlete, a Blob Storage a 412-ös állapotkódot is visszaadja (az előfeltétel sikertelen).
Egy adott blob esetében az összes blokkazonosítónak azonos hosszúságúnak kell lennie. Ha egy blokkot a meglévő nem véglegesített blokkok blokkazonosítóitól eltérő hosszúságú blokkazonosítóval töltenek fel, a szolgáltatás a 400-ás hibakódot (Hibás kérés) adja vissza.
A hívás Put Block From URL
nem frissíti egy meglévő blob utolsó módosításának 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 olyan ügyfelektől származhatnak, amelyek Blob Storage API-kat használnak, közvetlenül a Blob Storage REST API-ból vagy egy Azure Storage-ügyfélkódtárból. 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 |
1Az írás kezdeményezéséhez a célfiókot egy tranzakcióra terheljük.
2A forrásfiók minden olvasási kérelemhez egy tranzakciót von maga után a forrásobjektum felé.
Emellett 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óknak. Az ugyanabban a régióban lévő fiókok közötti kimenő forgalom ingyenes.
A megadott számlázási kategóriák díjszabásáról a Azure Blob Storage Díjszabás című témakörben olvashat.