Put Range
L'operazione Put Range
scrive un intervallo di byte in un file. Questa operazione è supportata nella versione 2025-05-05 e successive per condivisioni file con protocollo NFS abilitato.
Disponibilità del protocollo
Protocollo di condivisione file abilitato | Disponibile |
---|---|
SMB |
![]() |
NFS |
![]() |
Richiesta
La richiesta di Put Range
viene costruita nel modo seguente. È consigliabile usare HTTPS.
Metodo | URI della richiesta | Versione HTTP |
---|---|---|
METTERE | https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=range |
HTTP/1.1 |
Sostituire i componenti del percorso visualizzati nell'URI della richiesta con i propri, come indicato di seguito:
Componente percorso | Descrizione |
---|---|
myaccount |
Nome dell'account di archiviazione. |
myshare |
Nome della condivisione file. |
mydirectorypath |
Opzionale. Percorso della directory padre. |
myfile |
Nome del file. |
Per informazioni sulle restrizioni di denominazione dei percorsi, vedere Condivisioni nome e riferimenti, directory, file e metadati.
Parametri URI
È possibile specificare i parametri aggiuntivi seguenti nell'URI della richiesta.
Parametro | Descrizione |
---|---|
timeout |
Opzionale. Il parametro timeout è espresso in secondi. Per altre informazioni, vedere Impostare i timeout per le operazioni del servizio file. |
Intestazioni della richiesta
Le intestazioni di richiesta obbligatorie e facoltative sono descritte nelle tabelle seguenti:
Intestazioni di richiesta comuni
Intestazione della richiesta | Descrizione |
---|---|
Authorization |
Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
Date o x-ms-date |
Obbligatorio. Specifica l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
x-ms-version |
Obbligatorio per tutte le richieste autorizzate. Specifica la versione dell'operazione da utilizzare per questa richiesta. Questa operazione è supportata nella versione 2025-05-05 e successive per condivisioni file con protocollo NFS abilitato. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure. |
Range o x-ms-range |
È necessario Range o x-ms-range .Specifica l'intervallo di byte da scrivere. È necessario specificare sia l'inizio che la fine dell'intervallo. Questa intestazione è definita dalla specifica del protocollo HTTP/1.1 . Per un'operazione di aggiornamento, l'intervallo può avere dimensioni fino a 4 MiB. Per un'operazione chiara, l'intervallo può essere fino al valore delle dimensioni intere del file. Il servizio file accetta solo un singolo intervallo di byte per le intestazioni Range e x-ms-range e l'intervallo di byte deve essere specificato nel formato seguente: bytes=startByte-endByte .Se vengono specificati sia Range che x-ms-range , il servizio usa il valore di x-ms-range . Per altre informazioni, vedere Specificare l'intestazione dell'intervallo per le operazioni del servizio file. |
Content-Length |
Obbligatorio. Specifica il numero di byte trasmessi nel corpo della richiesta. Quando l'intestazione x-ms-write è impostata su clear , il valore di questa intestazione deve essere impostato su 0 . |
Content-MD5 |
Opzionale. Hash MD5 del contenuto. Questo hash viene usato per verificare l'integrità dei dati durante il trasporto. Quando si specifica l'intestazione Content-MD5 , File di Azure confronta l'hash del contenuto che è arrivato con il valore di intestazione inviato. Se i due hash non corrispondono, l'operazione non riesce con codice di errore 400 (richiesta non valida).L'intestazione Content-MD5 non è consentita quando l'intestazione x-ms-write è impostata su clear . Se è incluso nella richiesta, il servizio file restituisce il codice di stato 400 (richiesta non valida). |
x-ms-write: { update ¦ clear } |
Obbligatorio. È necessario specificare una delle opzioni seguenti:
|
x-ms-lease-id:<ID> |
Obbligatorio se il file ha un lease attivo. Disponibile per la versione 2019-02-02 e successive. Questa intestazione viene ignorata se il file si trova in una condivisione file con protocollo NFS abilitato, che non supporta i lease di file. |
x-ms-client-request-id |
Opzionale. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log quando viene configurata la registrazione. È consigliabile usare questa intestazione per correlare le attività sul lato client alle richieste ricevute dal server. Per altre informazioni, vedere Monitorare File di Azure. |
x-ms-file-last-write-time: { now ¦ preserve } |
Opzionale. Versione 2021-06-08 e successive. È possibile specificare una delle opzioni seguenti:
|
x-ms-file-request-intent |
Obbligatorio se Authorization intestazione specifica un token OAuth. Il valore accettabile è backup . Questa intestazione specifica che il Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action o Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action deve essere concesso se sono inclusi nei criteri di controllo degli accessi in base al ruolo assegnati all'identità autorizzata usando l'intestazione Authorization . Disponibile per la versione 2022-11-02 e successive. |
x-ms-allow-trailing-dot: { <Boolean> } |
Opzionale. Versione 2022-11-02 e successive. Il valore booleano specifica se un punto finale presente nell'URL della richiesta deve essere tagliato o meno. Questa intestazione viene ignorata se la destinazione si trova in una condivisione file con protocollo NFS abilitato, che supporta il punto finale per impostazione predefinita. Per altre informazioni, vedere Denominazione e riferimento a condivisioni, directory, file e metadati. |
Intestazioni di richiesta solo SMB
Nessuno.
Intestazioni di richiesta solo NFS
Nessuno.
Corpo della richiesta
Dati che rappresentano l'intervallo da caricare.
Richiesta di esempio: Intervallo di byte di aggiornamento
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
Richiesta di esempio: Cancella intervallo di byte
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=
Risposta
La risposta include un codice di stato HTTP e un set di intestazioni di risposta.
Codice di stato
Un'operazione riuscita restituisce il codice di stato 201 (Creato). Per altre informazioni sui codici di stato, vedere Stato e codici di errore.
Intestazioni di risposta
La risposta per questa operazione include le intestazioni nelle tabelle seguenti. La risposta può includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1 .
Intestazioni di risposta comuni
Intestazione della risposta | Descrizione |
---|---|
ETag |
L'ETag contiene un valore che rappresenta la versione del file. Il valore è racchiuso tra virgolette. |
Last-Modified |
Restituisce la data e l'ora dell'ultima modifica della directory. Il formato della data segue RFC 1123. Per altre informazioni, vedere Rappresentare valori di data/ora nelle intestazioni. Qualsiasi operazione che modifica la condivisione o le relative proprietà o metadati aggiorna l'ora dell'ultima modifica. Le operazioni sui file non influiscono sull'ora dell'ultima modifica della condivisione. |
Content-MD5 |
Questa intestazione viene restituita in modo che il client possa verificare l'integrità del contenuto del messaggio. Il valore di questa intestazione viene calcolato dal servizio file. Non è necessariamente uguale al valore specificato nelle intestazioni della richiesta. |
x-ms-request-id |
Identifica in modo univoco la richiesta effettuata e può essere usata per risolvere i problemi della richiesta. Per altre informazioni, vedere Risolvere i problemi relativi alle operazioni API. |
x-ms-version |
Indica la versione del servizio file utilizzata per eseguire la richiesta. |
Date |
Valore di data/ora UTC generato dal servizio, che indica l'ora di avvio della risposta. |
x-ms-request-server-encrypted: { true ¦ false } |
Versione 2017-04-17 e successive. Il valore di questa intestazione è impostato su true se il contenuto della richiesta viene crittografato correttamente usando l'algoritmo specificato. In caso contrario, il valore è impostato su false . |
x-ms-client-request-id |
Questa intestazione può essere usata per risolvere i problemi relativi alle richieste e alle risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id se è presente nella richiesta e il valore non contiene più di 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, non è presente nella risposta. |
x-ms-file-last-write-time |
Versione 2021-06-08 e successive. Ora dell'ultima scrittura per il file, nel formato ISO 8601. Esempio: 2017-05-10T17:52:33.9551861Z . |
Intestazioni di risposta solo SMB
Nessuno.
Intestazioni di risposta solo NFS
Nessuno.
Corpo della risposta
Nessuno.
Risposta di esempio
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
Autorizzazione
Solo il proprietario dell'account può chiamare questa operazione.
Osservazioni
L'operazione Put Range
scrive un intervallo di byte in un file. Questa operazione può essere chiamata solo su un file esistente. Non può essere chiamato per creare un nuovo file. La chiamata Put Range
con un nome di file che attualmente non esiste restituisce il codice di stato 404 (Non trovato).
Per creare un nuovo file, chiamare Crea file. Un file può avere dimensioni fino a 4 TiB.
Il completamento di un'operazione di Put Range
è consentito 10 minuti per miB. Se l'operazione richiede in media più di 10 minuti per MiB, si verifica il timeout.
Se il file ha un lease attivo, il client deve specificare un ID lease valido nella richiesta per scrivere un intervallo.
operazioni di aggiornamento dell'intervallo
La chiamata Put Range
con l'opzione Update
esegue una scrittura sul posto nel file specificato. Qualsiasi contenuto nell'intervallo specificato viene sovrascritto con l'aggiornamento. Ogni intervallo inviato con Put Range
per un'operazione di aggiornamento può avere dimensioni fino a 4 MiB. Se si tenta di caricare un intervallo maggiore di 4 MiB, il servizio restituisce il codice di stato 413 (Richiesta entità troppo grande).
Operazioni cancellate intervallo
La chiamata Put Range
con l'opzione Clear
rilascia lo spazio di archiviazione purché l'intervallo specificato sia allineato a 512 byte. Gli intervalli cancellati non vengono più rilevati come parte del file e non vengono restituiti nella risposta intervallo elenco. Se l'intervallo specificato non è allineato a 512 byte, l'operazione scrive zeri all'inizio o alla fine dell'intervallo non allineato a 512 byte e libera il resto dell'intervallo all'interno di tale intervallo allineato a 512 byte.
Tutti gli intervalli che non sono stati cancellati vengono restituiti nella risposta list ranges. Per un esempio, vedere la sezione "Sample unligned clear range" (Esempio di intervallo non allineato non allineato) riportata di seguito.
lease di file
È possibile chiamare file di lease per ottenere un blocco di scrittura esclusivo nel file su altre scritture per una durata infinita.
blocchi dell'intervallo di byte del client SMB
Il protocollo SMB consente ai blocchi di intervalli di byte di gestire l'accesso in lettura e scrittura alle aree di un file. Ciò significa che Put Range
in un file che si trova in una condivisione file con protocollo SMB abilitato ha esito negativo se un client SMB ha un blocco che si sovrappone all'intervallo specificato dall'operazione di Put Range
utilizzando x-ms-range
. Per altre informazioni, vedere Gestire blocchi di file.
blocchi dell'intervallo di byte del client NFS
I blocchi dell'intervallo di byte POSIX del protocollo NFS sono di natura consultiva, pertanto il Put Range
in un file che si trova in una condivisione file con protocollo NFS abilitato non avrà esito negativo anche se è presente un blocco di intervallo di byte in conflitto mantenuto da un client NFS.
notifiche di modifica della directory client SMB
Il protocollo SMB supporta la funzione API FindFirstChangeNotification che consente alle applicazioni di rilevare quando si verificano modifiche nel file system. Può rilevare quando un file o una directory viene aggiunta, modificata o eliminata e quando cambiano le dimensioni, gli attributi o i descrittori di sicurezza di un file. I client SMB che usano questa API non riceveranno notifiche quando si verifica una modifica di file o directory tramite l'API REST di File di Azure. Tuttavia, le modifiche causate da altri client SMB propagano le notifiche.
Intervallo non allineato non allineato
Si supponga di creare un file con Create File e che venga scritto un singolo intervallo con Put Range
, come indicato di seguito:
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
L'esecuzione di un'operazione di elenchi nel file restituisce il corpo della risposta seguente:
<?xml version="1.0" ecoding="utf-8"?>
<Ranges>
<Range>
<Start>0</Start>
<End>65536</End>
</Range>
</Ranges>
Si supponga ora che venga eseguita un'operazione di intervallo di byte non allineati:
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=
Un'operazione successiva List Ranges sul file restituisce il corpo della risposta seguente:
<?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>
Si noti che gli zeri sono stati scritti nello spazio non allineato da 768-1024 e 2048-2304.
Put Range
non è supportato in uno snapshot di condivisione, ovvero una copia di sola lettura di una condivisione. Un tentativo di eseguire questa operazione su uno snapshot di condivisione ha esito negativo con 400 (InvalidQueryParameterValue).
Vedere anche
operazioni di su file