VENDITE: 1-800-867-1389

Put Blob

Aggiornamento: gennaio 2014

Tramite l'operazione Put Blob viene creato un nuovo Blob in blocchi o di pagine oppure viene aggiornato il contenuto di un Blob in blocchi esistente.

L'aggiornamento di un Blob in blocchi esistente comporta la sovrascrittura dei metadati esistenti nel Blob. Gli aggiornamenti parziali non sono supportati con Put Blob. Il contenuto del Blob esistente verrà sovrascritto con il contenuto del nuovo Blob. Per eseguire un aggiornamento parziale del contenuto di un Blob in blocchi, utilizzare l'operazione Put Block List.

Si noti che chiamando Put Blob per creare un Blob di pagine ci si limita a inizializzare il Blob. Per aggiungere contenuto a un Blob di pagine, chiamare l'operazione Put Page.

La richiesta Put Blob può essere costruita nel modo seguente. Si consiglia di utilizzare HTTPS. Sostituire myaccount con il nome dell'account di archiviazione:

 

  URI della richiesta del metodo PUT Versione HTTP

https://myaccount.blob.core.windows.net/mycontainer/myblob

HTTP/1.1

Quando si effettua una richiesta nel servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta del servizio Blob come 127.0.0.1:10000, seguiti dal nome dell'account di archiviazione emulato:

 

  URI della richiesta del metodo PUT Versione HTTP

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1.1

Si noti che l'emulatore di archiviazione supporta solo Blob di dimensioni non superiori a 2 GB.

Per altre informazioni, vedere Uso dell'emulatore di archiviazione di Azure per lo sviluppo e il test.

Nell'URI della richiesta è possibile specificare i parametri aggiuntivi seguenti.

 

Parametro Descrizione

timeout

Facoltativo. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione di timeout per le operazioni del servizio Blob.

Nella tabella seguente vengono descritte le intestazioni della richiesta obbligatorie e facoltative per le operazioni sui Blob in blocchi e sui Blob di pagine.

 

Intestazione della richiesta Descrizione

Authorization

Obbligatorio. Specifica lo schema di autenticazione, il nome dell'account e la firma. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

Date o x-ms-date

Obbligatorio. Specifica l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

x-ms-version

Obbligatoria per tutte le richieste autenticate. Specifica la versione dell'operazione da utilizzare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure.

Content-Length

Obbligatorio. Lunghezza della richiesta.

Per un Blob di pagine, il valore di questa intestazione deve essere impostato su zero, perché Put Blob viene utilizzato unicamente per inizializzare il Blob di pagine. Le dimensioni del Blob di pagine sono specificate nell'intestazione x-ms-blob-content-length. Tutto il contenuto deve essere scritto in un Blob di pagine chiamando Put Page.

Content-Type

Facoltativo. Tipo di contenuto MIME del Blob. Il tipo predefinito è application/octet-stream.

Content-Encoding

Facoltativo. Specifica le codifiche di contenuto applicate al Blob. Questo valore viene restituito al client quando l'operazione Get Blob viene eseguita sulla risorsa Blob. Il client può utilizzare questo valore quando viene restituito per decodificare il contenuto del Blob.

Content-Language

Facoltativo. Specifica i linguaggi naturali utilizzati dalla risorsa.

Content-MD5

Facoltativo. Hash MD5 del contenuto del Blob. Questo hash viene utilizzato per verificare l'integrità del Blob durante il trasporto. Quando questa intestazione viene specificata, il servizio di archiviazione controlla l'hash ricevuto con quello inviato. Se i due hash non corrispondono, l'operazione ha esito negativo e restituisce il codice di errore 400 (Richiesta non valida).

Se omesso nella versione 2012-02-12 e successive, il servizio Blob genera un hash MD5.

I risultati di Get Blob, Get Blob Properties e List Blobs includono l'hash MD5.

Cache-Control

Facoltativo. Il servizio Blob archivia questo valore, ma non lo utilizza né lo modifica.

x-ms-blob-content-type

Facoltativo. Imposta il tipo di contenuto del Blob.

x-ms-blob-content-encoding

Facoltativo. Imposta la codifica del contenuto del Blob.

x-ms-blob-content-language

Facoltativo. Imposta il linguaggio del contenuto del Blob.

x-ms-blob-content-md5

Facoltativo. Imposta l'hash MD5 del Blob.

x-ms-blob-cache-control

Facoltativo. Imposta il controllo della cache del Blob.

x-ms-blob-type:<BlockBlob | PageBlob>

Obbligatorio. Specifica il tipo di BLOB da creare: BLOB in blocchi o BLOB di pagine.

x-ms-meta-name:value

Facoltativo. Coppie nome-valore associate al Blob come metadati.

Si noti che a partire dalla versione 2009-09-19, i nomi dei metadati devono essere conformi alle regole di denominazione per gli identificatori C#.

x-ms-lease-id:<ID>

Obbligatoria se il Blob presenta un lease attivo. Per eseguire questa operazione su un Blob con un lease attivo, specificare l'ID lease valido per questa intestazione.

x-ms-blob-content-disposition

Facoltativo. Imposta l'intestazione Content-Disposition del BLOB. Disponibile con la versione 2013-08-15 e successive.

Il campo di intestazione di risposta Content-Disposition contiene informazioni aggiuntive su come elaborare il payload di risposta e può inoltre essere utilizzato per collegare i metadati aggiuntivi. Ad esempio, se è impostato su attachment, indica che l'agente utente non visualizza la risposta, ma visualizza invece una finestra di dialogo Salva con nome con un nome di file diverso da quello del BLOB specificato.

La risposta delle operazioni Get Blob e Get Blob Properties include l'intestazione content-disposition.

Origin

Facoltativo. Specifica l'origine da cui proviene la richiesta. La presenza di questa intestazione determina la presenza di intestazioni di condivisione delle risorse multiorigine nella risposta. Per informazioni dettagliate, vedere Supporto della condivisione delle risorse tra le origini (CORS) per i servizi di archiviazione Azure.

x-ms-client-request-id

Facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 KB che viene registrato nei log di analisi quando la registrazione di Analisi archiviazione è abilitata. L'utilizzo di questa intestazione è consigliato per la correlazione tra le attività sul lato client e le richieste ricevute dal server. Per altre informazioni vedere Informazioni sulla registrazione di Analisi archiviazione e l'articolo relativo all'utilizzo di log per tenere traccia delle richiesta di archiviazione nella registrazione di Azure.

Questa operazione supporta anche l'utilizzo delle intestazioni condizionali per scrivere il Blob solo se viene soddisfatta una determinata condizione. Per altre informazioni, vedere Specifica di intestazioni condizionali per le operazioni del servizio Blob.

Nella tabella seguente vengono descritte le intestazioni della richiesta applicabili solo alle operazioni sui Blob di pagine.

 

Intestazione della richiesta Descrizione

x-ms-blob-content-length: bytes

Obbligatoria per i Blob di pagine. Questa intestazione specifica le dimensioni massime per il Blob di pagine, che non devono superare 1 TB. Le dimensioni del Blob di pagine devono essere allineate a un limite di 512 byte.

Se questa intestazione viene specificata per un Blob in blocchi, il servizio Blob restituisce il codice di stato 400 (Richiesta non valida).

x-ms-blob-sequence-number: <num>

Facoltativo. Impostare solo per i Blob di pagine. Il numero di sequenza è un valore controllato dall'utente che è possibile utilizzare per tenere traccia delle richieste. Il valore del numero di sequenza deve essere compreso tra 0 e 2^63 - 1. Il valore predefinito è 0.

Per un Blob in blocchi, il corpo della richiesta include il contenuto del Blob.

Per un Blob di pagine, il corpo della richiesta è vuoto.

Nell'esempio seguente viene illustrata una richiesta per creare un Blob in blocchi:

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:33:355 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-content-disposition: attachment; filename="fname.ext"
x-ms-blob-type: BlockBlob
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 11

Request Body:
hello world

La richiesta di esempio riguarda la creazione di un Blob di pagine e specifica dimensioni massime pari a 1024 byte. Si noti che è necessario chiamare Put Page per aggiungere contenuto a un Blob di pagine:

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/mypageblob HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Wed, 23 Oct 2013 22:41:55 GMT
Content-Type: text/plain; charset=UTF-8
x-ms-blob-type: PageBlob
x-ms-blob-content-length: 1024
x-ms-blob-sequence-number: 0
Authorization: SharedKey 
Origin: http://contoso.com
Vary: Origin
myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=
Content-Length: 0

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Un'operazione completata correttamente restituisce il codice di stato 201 (Creato).

Per informazioni sui codici di stato, vedere Codici ed errori di stato.

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; Nella risposta possono anche essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

 

Intestazione della risposta Descrizione

ETag

Il valore ETag contiene un valore che il client può utilizzare per eseguire operazioni PUT condizionali utilizzando l'intestazione della richiesta If-Match. Se la versione della richiesta è 2011-08-18 o successive, il valore ETag sarà racchiuso tra virgolette.

Last-Modified

Data e ora dell'ultima modifica del Blob. Il formato data è conforme a RFC 1123. Per altre informazioni, vedere Rappresentazione di valori di data e ora nelle intestazioni.

Qualsiasi operazione di scrittura sul Blob, inclusi aggiornamenti dei metadati o delle proprietà del Blob, comporta la modifica dell'ora dell'ultima modifica del Blob.

Content-MD5

Questa intestazione viene restituita per un Blob in blocchi in modo che il client possa verificare l'integrità del contenuto del messaggio. Il valore Content-MD5 restituito viene calcolato dal servizio Blob. Nella versione 2012-02-12 e successive, questa intestazione viene restituita anche se la richiesta non include l'intestazione Content-MD5 o x-ms-blob-content-md5.

x-ms-request-id

Questa intestazione identifica in modo univoco la richiesta effettuata e può essere utilizzata per risolvere i problemi relativi alla richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni dell'API.

x-ms-version

Indica la versione del servizio Blob utilizzata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive.

Date

Valore data/ora UTC generato dal servizio che indica l'ora in cui è stata avviata la risposta.

Access-Control-Allow-Origin

Restituito se la richiesta include un'intestazione Origin e la condivisione CORS è abilitata con una regola di corrispondenza. Questa intestazione restituisce il valore dell'intestazione della richiesta di origine nel caso di una corrispondenza.

Access-Control-Expose-Headers

Restituito se la richiesta include un'intestazione Origin e la condivisione CORS è abilitata con una regola di corrispondenza. Restituisce l'elenco delle intestazioni di risposta che devono essere esposte al client o all'emittente della richiesta.

Access-Control-Allow-Credentials

Restituito se la richiesta include un'intestazione Origin e la condivisione CORS è abilitata con una regola di corrispondenza che non ammette tutte le origini. Questa intestazione sarà impostata su True.

Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==
Date: Wed, 23 Oct 2013 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Wed, 23 Oct 2013 22:30:15 GMT
Access-Control-Allow-Origin: http://contoso.com
Access-Control-Expose-Headers: Content-MD5
Access-Control-Allow-Credentials: True
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

L'operazione può essere richiamata dal proprietario dell'account e da qualsiasi altro client con una firma di accesso condiviso che dispone dell'autorizzazione di accesso in scrittura per il Blob o il relativo contenitore.

Quando si crea un Blob, è necessario specificare se si tratta di un Blob in blocchi o di un Blob di pagine. Dopo che è stato creato, il tipo del Blob non può più essere modificato, a meno che non venga eliminato e ricreato.

Per creare un nuovo Blob di pagine, è innanzitutto necessario inizializzare il Blob chiamando Put Blob e specificarne le dimensioni massime, che non devono superare 1 TB. Quando si crea un Blob di pagine, non includere il contenuto nel corpo della richiesta. Dopo che il Blob è stato creato, chiamare Put Page per aggiungere contenuto al Blob o modificarlo.

Le dimensioni di caricamento massimo per un Blob in blocchi sono pari a 64 MB. Se le dimensioni del Blob superano 64 MB, è necessario caricarlo come set di blocchi. Per altre informazioni, vedere le operazioni Put Block e Put Block List. Non è necessario chiamare Put Blob se si carica il Blob come set di blocchi.

Se si tenta di caricare un Blob in blocchi di dimensioni superiori a 64 MB o un Blob di pagine di dimensioni superiori a 1 TB, il servizio restituisce il codice di stato 413 (Entità della richiesta troppo grande). Tramite il servizio Blob vengono inoltre restituite informazioni aggiuntive sull'errore nella risposta, incluse le dimensioni massime del Blob in byte.

Se si chiama Put Blob per sovrascrivere un Blob esistente con lo stesso nome, tutti gli snapshot associati al Blob originale vengono mantenuti. Per rimuovere gli snapshot associati, chiamare innanzitutto Delete Blob, quindi Put Blob per ricreare il Blob.

Un Blob dispone di proprietà personalizzate, impostate tramite intestazioni, che è possibile utilizzare per archiviare valori associati alle intestazioni HTTP standard. Questi valori potranno essere letti chiamando Get Blob Properties oppure essere modificati chiamando Set Blob Properties. Le intestazioni delle proprietà personalizzate e l'intestazione HTTP standard corrispondente sono elencate nella tabella seguente:

 

Intestazione HTTP Intestazione della proprietà del Blob personalizzata

Content-Type

x-ms-blob-content-type

Content-Encoding

x-ms-blob-content-encoding

Content-Language

x-ms-blob-content-language

Content-MD5

x-ms-blob-content-md5

Cache-Control

x-ms-blob-cache-control

La semantica per impostare come persistenti questi valori di proprietà con il Blob è la seguente:

  • Se il client specifica l'intestazione di una proprietà personalizzata, come indicato dal prefisso x-ms-blob, questo valore viene archiviato con il Blob.

  • Se il client specifica un'intestazione HTTP standard, ma non l'intestazione di una proprietà personalizzata, il valore viene archiviato nella proprietà personalizzata corrispondente associata al Blob e viene restituito da una chiamata a Get Blob Properties. Ad esempio, se il client imposta l'intestazione Content-Type sulla richiesta, questo valore viene archiviato nella proprietà x-ms-blob-content-type del Blob.

  • Se il client imposta l'intestazione HTTP standard e l'intestazione della proprietà corrispondente nella stessa richiesta, la richiesta PUT utilizza il valore specificato per l'intestazione HTTP standard, mentre il valore specificato per l'intestazione della proprietà personalizzata viene reso persistente con il Blob e restituito da richieste GET successive.

Se il Blob presenta un lease attivo, il client deve specificare un ID lease valido nella richiesta per poter sovrascrivere il Blob. Se il client non specifica un ID lease o ne specifica uno non valido, il servizio Blob restituisce il codice di stato 412 (Condizione preliminare non riuscita). Se il client specifica un ID lease, ma il Blob non presenta un lease attivo, il servizio Blob restituisce il codice di stato 412 (Condizione preliminare non riuscita). Se tramite il client viene specificato un ID lease in un Blob che non esiste ancora, il servizio Blob restituirà il codice di stato 412 (precondizione non riuscita) per le richieste effettuate nella versione 2013-08-15 e successive; per le versioni precedenti, il servizio Blob restituirà il codice di stato 201 (creato).

Se un Blob esistente con un lease attivo viene sovrascritto da un'operazione Put Blob, il lease viene reso persistente nel Blob aggiornato, finché non scade o non viene rilasciato.

A un'operazione Put Blob vengono concessi 10 minuti per MB. Se in media l'operazione richiede più di 10 minuti per megabyte, si verifica un timeout.

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Mostra:
© 2014 Microsoft