Tartomány elhelyezése

A Put Range művelet bájttartományt ír egy fájlba.

Protokoll rendelkezésre állása

Engedélyezett fájlmegosztási protokoll Elérhető
SMB Igen
NFS No

Kérés

A Put Range kérelem a következőképpen hozható létre. Javasoljuk, hogy HTTPS-t használjon.

Metódus Kérés URI-ja HTTP-verzió
PUT https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=range HTTP/1.1

Cserélje le a kérelem URI-jában látható elérésiút-összetevőket a sajátjára az alábbiak szerint:

Elérésiút-összetevő Description
myaccount A tárfiók neve.
myshare A fájlmegosztás neve.
mydirectorypath Választható. A szülőkönyvtár elérési útja.
myfile A fájl neve.

Az elérésiút-elnevezési korlátozásokról további információt a Név és referenciamegosztások, könyvtárak, fájlok és metaadatok című témakörben talál.

URI-paraméterek

A kérelem URI-ja a következő további paramétereket határozhatja 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 fájlszolgáltatás-műveletekhez.

Kérésfejlécek

A szükséges és nem kötelező kérésfejléceket az alábbi táblázatban ismertetjük:

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. A kérelemhez használni kívánt művelet verzióját adja meg. További információ: Az Azure Storage-szolgáltatások verziószámozása.
Range vagy x-ms-range x-ms-range Vagy Range szükség van gombra.

Meghatározza az írandó bájtok tartományát. A tartomány kezdetét és végét is meg kell adni. Ezt a fejlécet a HTTP/1.1 protokoll specifikációja határozza meg.

Frissítési művelet esetén a tartomány legfeljebb 4 MiB méretű lehet. Egyértelmű művelet esetén a tartomány a fájl teljes méretének értékétől is megnőhet.

A Fájlszolgáltatás csak egyetlen bájttartományt fogad el a és x-ms-range a Range fejlécekhez, a bájttartományt pedig a következő formátumban kell megadni: bytes=startByte-endByte.

Ha mindkettő Range és x-ms-range meg van adva, a szolgáltatás a értékét x-ms-rangehasználja. További információ: Fájlszolgáltatás-műveletek tartományfejlécének megadása.
Content-Length Kötelező. A kérelem törzsében továbbított bájtok számát adja meg. Ha a x-ms-write fejléc értéke clear, a fejléc értékét a következőre kell állítani: 0.
Content-MD5 Választható. A tartalom MD5 kivonata. Ez a kivonat az adatok sértetlenségének ellenőrzésére szolgál az átvitel során. Ha a Content-MD5 fejléc meg van adva, Azure Files összehasonlítja a kapott tartalom kivonatát az elküldött fejlécértékkel. Ha a két kivonat nem egyezik, a művelet 400-es hibakóddal (hibás kérelem) meghiúsul.

A Content-MD5 fejléc nem engedélyezett, ha a x-ms-write fejléc értéke clear. Ha szerepel a kérésben, a Fájlszolgáltatás a 400-ás állapotkódot adja vissza (hibás kérés).
x-ms-write: { update ¦ clear } Kötelező. A következő lehetőségek egyikét kell megadnia:
  • update: A kérelemtörzs által megadott bájtokat írja a megadott tartományba. A Range és Content-Length a fejlécnek egyeznie kell a frissítés végrehajtásához.
  • clear: Törli a megadott tartományt, és felszabadítja a tárterületet az adott tartományhoz. Tartomány törléséhez állítsa a fejlécet a Content-Length értékre 0, és állítsa a Range fejlécet egy olyan értékre, amely a tartomány törlését jelzi, akár a maximális fájlméretig.
x-ms-lease-id: <ID> Akkor szükséges, ha a fájl aktív bérletet kapott. A 2019-02-02-es és újabb verzióhoz érhető el.
x-ms-client-request-id Választható. Ügyfél által generált, átlátszatlan értéket biztosít egy 1 kib-os (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ó: Monitorozási Azure Files.
x-ms-file-last-write-time: { now ¦ preserve } Választható. 2021-06-08-es és újabb verzió. A következő lehetőségek egyikét adhatja meg:
  • now: Alapértelmezett érték. Frissítések az utolsó írási idő időbélyegét a kérés időpontjára.
  • preserve: A meglévő utolsó írási időbélyeget változatlanul hagyja.
x-ms-file-request-intent Kötelező, ha Authorization a fejléc OAuth-jogkivonatot ad meg. Elfogadható érték: backup. Ez a fejléc azt határozza meg, hogy a Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action vagy Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action meg kell adni, ha szerepelnek a fejléc használatával Authorization engedélyezett identitáshoz rendelt RBAC-szabályzatban. A 2022-11-02-es és újabb verziókhoz érhető el.
x-ms-allow-trailing-dot: { <Boolean> } Választható. 2022-11-02-es és újabb verzió. A logikai érték azt határozza meg, hogy a kérelem URL-címében található záró pont legyen-e levágva vagy sem. További információ: Megosztások, könyvtárak, fájlok és metaadatok elnevezése és hivatkozása.

A kérés törzse

A feltöltendő tartományt képviselő adatok.

Mintakérés: Bájttartomány frissítése

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1  
  
Request Headers:  
x-ms-write: update  
x-ms-date: Mon, 27 Jan 2014 22:15:50 GMT  
x-ms-version: 2014-02-14  
x-ms-range: bytes=0-65535  
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  
Content-Length: 65536  

Mintakérés: Bájttartomány törlése

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1  
  
Request Headers:  
Range: bytes=1024-2048  
x-ms-write: clear  
x-ms-date: Mon, 27 Jan 2014 23:37:35 GMT  
x-ms-version: 2014-02-14  
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  

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
ETag Az ETag egy olyan értéket tartalmaz, amely a fájl verzióját jelöli. Az érték idézőjelek közé kerül.
Last-Modified A könyvtár utolsó módosításának dátumát és időpontját adja vissza. A dátumformátum az RFC 1123-at követi. További információ: Dátum-/időértékek ábrázolása fejlécekben. Minden olyan művelet, amely módosítja a megosztást, illetve annak tulajdonságait vagy metaadatait, az utolsó módosítás időpontját frissíti. A fájlokon végzett műveletek nem befolyásolják a megosztás utolsó módosításának időpontját.
Content-MD5 Ez a fejléc lesz visszaadva, hogy az ügyfél ellenőrizni tudja az üzenettartalom integritását. Ennek a fejlécnek az értékét a Fájlszolgáltatás számítja ki. Ez nem feltétlenül ugyanaz, mint a kérelemfejlécekben megadott érték.
x-ms-request-id Egyedileg azonosítja a végrehajtott kérést, és a kérés hibaelhárításához használható. További információ: API-műveletek hibaelhárítása.
x-ms-version Azt a fájlszolgáltatás-verziót jelöli, amelyet a kérés végrehajtásához használtak.
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 } 2017-04-17-es és újabb verzió. Ennek a fejlécnek az értéke akkor true van beállítva, ha a kérelem tartalma sikeresen titkosítva van a megadott algoritmussal. Ellenkező esetben az érték a következőre falsevan állítva: .
x-ms-client-request-id Ez a fejléc 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, akkor nem jelenik meg a válaszban.
x-ms-file-last-write-time 2021-06-08-es és újabb verzió. A fájl utolsó írási ideje ISO 8601 formátumban. Példa: 2017-05-10T17:52:33.9551861Z.

Választörzs

Nincsenek.

Mintaválasz

Response Status:  
HTTP/1.1 201 Created  

Response Headers:  
Transfer-Encoding: chunked  
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==  
Date:Mon, 27 Jan 2014 22:33:35 GMT  
ETag: "0x8CB171BA9E94B0B"  
Last-Modified: Mon, 27 Jan 2014 12:13:31 GMT  
x-ms-version: 2014-02-14  
Content-Length: 0  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

Engedélyezés

Ezt a műveletet csak a fióktulajdonos hívhatja meg.

Megjegyzések

A Put Range művelet bájttartományt ír egy fájlba. Ez a művelet csak meglévő fájlon hívható meg. Nem hívható meg új fájl létrehozásához. A jelenleg nem létező fájlnévvel való hívás Put Range a 404-ben (nem található) állapotkódot adja vissza.

Új fájl létrehozásához hívja meg a Fájl létrehozása parancsot. A fájlok mérete legfeljebb 4 TiB lehet.

A Put Range művelet végrehajtása MiB-enként 10 percet vesz igénybe. Ha a művelet átlagosan 10 percnél tovább tart MiB-nként, az időkorlát túllépi az időkorlátot.

Ha a fájl aktív bérletet ad meg, az ügyfélnek érvényes bérletazonosítót kell megadnia a tartomány írására irányuló kérelemben.

Tartományfrissítési műveletek

A beállítással történő Update hívás Put Range helyben írást hajt végre a megadott fájlon. A megadott tartomány bármely tartalma felülíródik a frissítéssel. A frissítési művelethez Put Range elküldött tartományok mérete legfeljebb 4 MiB lehet. Ha egy 4 MiB-nél nagyobb tartományt próbál feltölteni, a szolgáltatás a 413-at (a kérelem entitás túl nagy) állapotkódot adja vissza.

Tartománytörlési műveletek

A beállítással történő Clear hívás Put Range felszabadítja a tárterületet, amíg a megadott tartomány 512 bájttal van igazítva. A törölt tartományok már nem lesznek nyomon követve a fájl részeként, és nem jelennek meg a Listatartomány válaszban. Ha a megadott tartomány nem 512 bájttal van igazítva, a művelet nullákat ír a tartomány elejére vagy végére, amelyek nem 512 bájttal vannak igazítva, és felszabadítja az 512 bájthoz igazított tartomány többi részét.

A nem törölt tartományok a Listatartományok válaszban lesznek visszaadva. Példaként tekintse meg a "Minta nem elaltolt tiszta tartomány" című szakaszt, amely a következő.

Fájlbérlet
Meghívhatja a bérletfájlt , hogy korlátlan ideig kizárólagos írási zárolást kapjon a fájlhoz más írásokkal szemben.

SMB-ügyfél bájttartomány-zárolásai

Az SMB protokoll lehetővé teszi a bájttartomány-zárolások használatát a fájlok régióihoz való olvasási és írási hozzáférés kezeléséhez. Ez azt jelenti, hogy Put Range nem sikerül, ha egy SMB-ügyfél olyan zárolással rendelkezik, amely átfedésben van a Put Range művelet által a használatával x-ms-rangemegadott tartománnyal. További információ: Fájlzárolások kezelése.

SMB-ügyfél címtárváltozási értesítései

Az SMB protokoll támogatja a FindFirstChangeNotification API-függvényt , amely lehetővé teszi az alkalmazások számára, hogy észleljék a fájlrendszer változásait. Észleli, ha egy fájl vagy könyvtár hozzáadása, módosítása vagy törlése, valamint a fájl mérete, attribútumai vagy biztonsági leírói megváltoznak. Az API-t használó SMB-ügyfelek nem kapnak értesítést, ha fájl- vagy könyvtármódosítás történik a Azure Files REST API-val. A más SMB-ügyfelek által okozott módosítások azonban propagálják az értesítéseket.

Minta el nem felszámolt tiszta tartomány

Tegyük fel, hogy létrejön egy fájl a Fájl létrehozása paranccsal, és egyetlen tartományt ír a következővel Put Range:

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1  

Request Headers:  
x-ms-write: updte  
x-ms-date: Mon, 27 Jan 2014 22:15:50 GMT  
x-ms-version: 2014-02-14  
x-ms-range: bytes=0-65536  
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  
Content-Length: 65536  

A listatartományok művelet fájlon való végrehajtása a következő választörzset adja vissza:

<?xml version="1.0" ecoding="utf-8"?>  
<Ranges>  
<Range>  
<Start>0</Start>  
<End>65536</End>  
</Range>  
</Ranges>  

Most tegyük fel, hogy a rendszer egy nem elalgorított üres tartománytartomány-műveletet hajt végre:

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1  

Request Headers:  
Range: bytes=768-2304  
x-ms-write: clear  
x-ms-date: Mon, 27 Jan 2014 23:37:35 GMT  
x-ms-version: 2014-02-14  
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  

A fájl további Listatartományok művelete a következő választörzset adja vissza:

<?xml version="1.0" encoding="utf-8"?>  
<Ranges>  
<Range>  
<Start>0</Start>  
<End>1024</End>  
</Range>  
<Range>  
<Start>2048</Start>  
<End>65535</End>  
</Range>  
</Ranges>  

Vegye figyelembe, hogy a nullákat a 768–1024 és a 2048–2304 közötti, el nem elaltatott területre írták.

Put Range nem támogatott megosztási pillanatképeken, ami egy megosztás írásvédett példánya. A művelet megosztási pillanatképen való végrehajtására tett kísérlet 400-as (InvalidQueryParameterValue) hibával meghiúsul.

Lásd még