Put Block

A művelet létrehoz egy új blokkot a blob részeként Put Block való végrehajtásához.

Kérés

A Put Block kérelem a következőképpen építhető fel. HTTPS használata ajánlott. Cserélje le a myaccount nevet a tárfiókja nevére:

PUT metódus kérésének URI-ja HTTP-verzió
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Emulált Storage szolgáltatás URI-ja

Amikor kérést ad az emulált társzolgáltatáshoz, adja meg az emulátor állomásnevét és Blob service portot a következőként: , majd adja meg az 127.0.0.1:10000 emulált tárfiók nevét:

PUT metódus kérésének URI-ja HTTP-verzió
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

További információ: Using the Azure Storage Emulator for Development and Testing (Az Azure Storage Emulator for Development and Testing használata).

URI-paraméterek

Paraméter Leírás
blockid Kötelező. Egy érvényes Base64 sztringérték, amely azonosítja a blokkot. A kódolás előtt a sztringnek legalább 64 bájt méretűnek kell lennie.

Egy adott blob esetén a paraméterhez megadott érték hosszának minden blokkhoz azonos blockid méretűnek kell lennie.

Vegye figyelembe, hogy 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ó: Setting Timeouts for Blob Service Operations (Időtúllépések beállítása a Blob Service-műveletekhez).

Kérelemfejlécek

Az alábbi táblázat a szükséges és opcionális kérésfejléceket ismerteti.

Kérelem fejléce Description
Authorization Kötelező. Megadja az engedélyezési sémát, a fiók nevét és az aláírást. További információ: Az Azure Storage kérések jogosultságai.
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ó: Az Azure-ba Storage.
x-ms-version Minden engedélyezett kéréshez szükséges. A kéréshez használni szükséges művelet verzióját határozza meg. További információ: Versioning for the Azure Storage Services (Az Azure Storage Services verziószámozása).
Content-Length Kötelező. A blokk tartalmának hossza bájtban. A 2019-12-12-es és újabb verziókban a blokk mérete kisebb vagy egyenlő, mint 4000 MiB. A régebbi verziók korlátait a Megjegyzések között láthatja.

Ha a hossz nincs megszabadva, a művelet a 411-es állapotkóddal meghiúsul (Hossz szükséges).
Content-MD5 Választható. A blokk tartalmának MD5-kivonata. Ez a kivonat a blokk integritásának ellenőrzésére használatos az szállítás során. Ha ez a fejléc meg van adva, a tárolási szolgáltatás összehasonlítja a érkezett tartalom kivonatát ezzel a fejlécértékkel.

Vegye figyelembe, hogy ezt az MD5-kivonatot a blob nem tárolja.

Ha a két hashes nem egyezik, a művelet a 400-as (Hibás kérés) hibakóddal meghiúsul.
x-ms-content-crc64 Választható. A blokk tartalmának CRC64-kivonata. Ez a kivonat a blokk integritásának ellenőrzésére használatos az szállítás során. Ha ez a fejléc meg van adva, a tárolási szolgáltatás összehasonlítja a érkezett tartalom kivonatát ezzel a fejlécértékkel.

Vegye figyelembe, hogy ezt a CRC64-kivonatot a blob nem tárolja.

Ha a két hashes nem egyezik, a művelet a 400-as (Hibás kérés) hibakóddal meghiúsul.

Ha a Content-MD5 és az x-ms-content-crc64 fejléc is jelen van, a kérés 400-as (Hibás kérés) hiba esetén meghiúsul.

Ez a fejléc a 2019-02-02-es vagy újabb verziókban támogatott.
x-ms-encryption-scope Választható. A kérés tartalmának titkosításához használt titkosítási hatókört jelzi. Ez a fejléc a 2019-02-02-es vagy újabb verziókban támogatott.
x-ms-lease-id:<ID> Kötelező, ha a blob aktív bérlettel rendelkezik. Ha ezt a műveletet aktív bérlettel kell végrehajtania egy blobon, adja meg az érvényes bérletazonosítót ehhez a fejléchez.
x-ms-client-request-id Választható. Egy ügyfél által létrehozott, átlátszatlan értéket biztosít 1 KiB karakterkorlátmal, amely a Storage Analytics-naplózás engedélyezése esetén rögzítve van az elemzési naplókban. A fejléc használata erősen ajánlott az ügyféloldali tevékenységek és a kiszolgáló által kapott kérések összevetéséhez. További információ: About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests(Az azure-naplózás és az Azure-naplózás: Naplók használata Storage kérelmek nyomon követéséhez).

Kérelemfejlécek (ügyfél által biztosított titkosítási kulcsok)

A 2019-02-02-es verziótól kezdődően a következő fejlécek lehetnek megadva a blob ügyfél által megadott kulccsal való titkosítására vonatkozó kérésben. Az ügyfél által megadott kulccsal (és a megfelelő fejléckészletekkel) való 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ő. A titkosításhoz használt algoritmust határozza meg. A fejléc értékének a következőnek kell lennie: AES256 .

Kérelem törzse

A kérelem törzse tartalmazza a blokk tartalmát.

Kérésminta

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: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 14:37:35 GMT  
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 1048576  

Reagálás

A válasz tartalmaz egy HTTP-állapotkódot és egy válaszfejléceket.

Állapotkód

A sikeres művelet a 201 (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ónak.

Válaszfejléc Description
Content-MD5 Ez a fejléc lesz visszaadva, így az ügyfél ellenőrizheti az üzenetek tartalmának integritását. Ennek a fejlécnek az értékét a következő Blob service; ez nem feltétlenül azonos a kérésfejlécben megadott értékkel. A 2019-02-02-es vagy újabb verziók esetén ez a fejléc csak akkor lesz visszaadva, ha a kérelem rendelkezik ezzel a fejléccel.
x-ms-content-crc64 A 2019-02-02-es vagy újabb verziókban ez a fejléc lesz visszaadva, így az ügyfél ellenőrizheti az üzenetek tartalomintegritását. Ennek a fejlécnek az értékét a következő Blob service; ez nem feltétlenül azonos a kérésfejlécben megadott értékkel.

Ez a fejléc akkor lesz Content-md5 visszaadva, ha a fejléc nem található meg a kérésben.
x-ms-request-id Ez a fejléc egyedileg azonosítja a kérést, amely a kérés hibaelhárítása esetén használható. További információ: TROUBLESHOOTing API Operations (API-műveletek hibaelhárítása).
x-ms-version A kérés végrehajtásához Blob service alkalmazás verzióját jelzi. Ez a fejléc lesz visszaadva a 2009-09-19-es vagy újabb verzióra vonatkozó kérések esetén.
Date A szolgáltatás által létrehozott UTC dátum-/időérték, amely a válasz kezdeményezésének időpontját jelzi.
x-ms-request-server-encrypted: true/false 2015- 12-11-es vagy újabb verzió. A fejléc értéke értékre van állítva, ha a kérés tartalma sikeresen titkosítva lett a megadott true algoritmussal, és false egyéb módon.
x-ms-encryption-key-sha256 2019. 02. 02. vagy újabb verzió. Ez a fejléc akkor lesz visszaadva, ha a kérelem ügyfél által megadott kulcsot használt a titkosításhoz, így az ügyfél a megadott kulccsal biztosíthatja, hogy a kérés tartalma sikeresen titkosítva legyen.
x-ms-encryption-scope 2019. 02. 02. vagy újabb verzió. Ez a fejléc akkor lesz visszaadva, ha a kérés titkosítási hatókört használt, így az ügyfél a titkosítási hatókör használatával biztosíthatja a kérés tartalmának sikeres titkosítását.
x-ms-client-request-id Ez a fejléc használható a kérések és a hozzájuk tartozó válaszok hibaelhárítása érdekében. Ennek a fejlécnek az értéke megegyezik a fejléc értékével, ha az a kérelemben található, és az érték legalább x-ms-client-request-id 1024 látható ASCII-karakter. Ha a fejléc nem található meg a kérésben, ez a fejléc nem lesz x-ms-client-request-id jelen a válaszban.

Mintaválasz

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sun, 25 Sep 2011 23:47:09 GMT  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Engedélyezés

Ezt a műveletet a fiók tulajdonosa és bárki hívhatja, aki rendelkezik olyan közös hozzáférésű jogosultságokkal, amely engedéllyel rendelkezik a blobba vagy a tárolóba való íráshoz.

Megjegyzések

Put Block feltölt egy blokkot a blokkblobokba való későbbi belefoglalás érdekében. Egy blokkblob minden blokkja eltérő méretű lehet. A blokkblobok legfeljebb 50 000 lekötött blokkot tartalmazhatnak. Az alábbi táblázat a szolgáltatásverzió által engedélyezett maximális blokk- és blobméreteket ismerteti:

Szolgáltatás verziója Maximális blokkméret (Put Blockon keresztül) Blob maximális mérete (Put Block Listán keresztül) Blob maximális mérete egyetlen írási művelettel (Put Blobon keresztül)
2019. 12. 12. és újabb verzió 4000 MiB Körülbelül 190,7 TiB (4000 MiB X 50 000 blokk) 5000 MiB (előzetes verzió)
2016. 05. 31. és 2019. 07. 07. között 100 MiB Körülbelül 4,75 TiB (100 MiB X 50 000 blokk) 256 MiB
2016. 05. 31. előtti verziók 4 MiB Körülbelül 195 GiB (4 MiB X 50 000 blokk) 64 MiB

A blobhoz társítható nem véglegesített blokkok maximális száma 100 000. Ha túllépi a maximális értéket, a szolgáltatás a 409-es állapotkódot adja vissza (RequestEntityTooLargeBlockCountExceedsLimit).

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 Put Block List művelet hívásával. A készlet minden blokkját azonosítja egy blokkazonosító, amely egyedi a blobon belül. A blokk-azonosok hatóköre egy adott blobra terjed ki, így a különböző blobok ugyanazokkal az objektumokkal is kaphatnak blokkokat.

Ha még nem létező blobra hív meg hívást, a rendszer létrehoz egy 0 tartalomhosszú új Put Block blokkblobot. Ezt a blobot a művelet számba List Blobs veszi, ha a include=uncommittedblobs beállítás meg van adva. A feltöltött blokkok vagy blokkok nem kerülnek kötelezettséget a kötelezettséget az új Put Block List blob hívásáig. Az így létrehozott blobokat a rendszer egy hétig tartja fenn a kiszolgálón; Ha az adott időszakban nem adott hozzá további blokkokat vagy nem követett el blokkokat a blobhoz, akkor a blob szemétgyűjtésre kerül.

A művelettel sikeresen feltöltött blokkok nem válnak a blobok részeivé, amíg nem kerül a rel Put Block való Put Block List végrehajtásához. Az új vagy frissített blob véglegesítésére való hívás előtt a Get Blob minden hívása a nem véglegesített blokk belefoglalása nélkül adja vissza a blob Put Block List tartalmát.

Ha olyan blokkot tölt fel, amely ugyanazokkal a blokkazonosítóval rendelkezik, mint egy másik, még nem lekötött blokk, a rendszer a következő sikeres művelet során az azonosítóval utoljára feltöltött blokkot is le fogja Put Block List tiltani.

A hívatát követően a blokklistában megadott összes nem véglegesített blokk véglegesül Put Block List az új blob részeként. A blob blokklistán nem megadott, nem véglegesített blokkok szemétgyűjtésre kerülnek, és el lesznek távolítva a Blob service. A nem véglegesített blokkok akkor is szemétgyűjtésre kerülnek, ha az utolsó sikeres művelet után egy héten belül nem történik sikeres hívás ugyanazon blobra vagy Put Block Put Block List Put Block blobra. Ha a blobon a Put Blob van megadva, a nem véglegesített blokkok szemétgyűjtést fognak gyűjteni.

Ha a blob aktív bérlettel rendelkezik, az ügyfélnek érvényes bérletazonosítót kell megadnia a kéréshez, hogy blokkot írjon a blobba. Ha az ügyfél nem ad meg bérletazonosítót, vagy érvénytelen bérletazonosítót ad meg, a Blob service a 412-es állapotkódot adja vissza (az előfeltétel nem teljesül). Ha az ügyfél megad egy bérletazonosítót, de a blob nem rendelkezik aktív bérlettel, a Blob service a 412 -es állapotkódot is visszaadja (az előfeltétel nem teljesül).

Egy adott blobhoz minden blokk-objektum hosszának azonosnak kell lennie. Ha egy blokk feltöltése a meglévő nem véglegesített blokkok blokkazonosítóitól eltérő hosszúságú blokkazonosítóval történik, a szolgáltatás a 400-as (Hibás kérés) hibaválaszkódot adja vissza.

Ha a 2019-12-12-es és újabb verziókhoz 4000 MiB-t, a 2016-05-31-es és újabb verziókhoz 100 MiB-t, a régebbi verzióknál pedig 4 MiB-t nagyobb méretűre próbál feltölteni, a szolgáltatás a 413-as (Túl nagy kérelementitás) állapotkódot adja vissza. A szolgáltatás további információkat is ad vissza a válaszban található hibáról, beleértve a bájtban megengedett maximális blokkméretet.

A hívása nem frissíti egy meglévő blob utolsó Put Block módosítási idejét.

A Put Block lapblobok hívása hibát ad vissza.

Az Put Block archivált blobok hívása hibát jelez, és a Hot / Cool blobon nem módosítja a blobszintet.

Lásd még:

Azure-beli virtuális Storage
Állapot- és hibakódok
Blob Service-hibakódok
Időtúllépések beállítása Blob Service-műveletekhez