Archivado de un blob
El nivel de acceso de archivo es un nivel sin conexión para almacenar datos blob a los que rara vez se accede. El nivel de acceso de archivo tiene el coste de almacenamiento más bajo, pero tiene mayores costes de recuperación de datos y latencia en comparación con los niveles de acceso con conexión (frecuente y esporádico). Los datos deben permanecer en el nivel de archivo durante al menos 180 días o estar sujetos a un cargo por eliminación temprana. Para más información sobre el nivel de archivo, consulte Niveles de acceso de archivo.
Un blob no se puede leer ni modificar mientras se encuentre en el nivel de archivo. Para leer o descargar un blob del nivel de acceso de archivo, primero debe rehidratarlo a un nivel en línea, bien sea de acceso esporádico o de acceso frecuente. Los datos del nivel de archivo pueden tardar hasta 15 horas en rehidratarse, dependiendo de la prioridad que especifique para la operación de rehidratación. Para obtener más información sobre la rehidratación de blobs, consulte Resumen de la rehidratación de blobs desde el nivel de acceso de archivo.
Precaución
Los blob en nivel de acceso de archivo no tienen conexión, — por lo cual, no se podrán leer ni modificar— hasta que se hayan rehidratado. El proceso de rehidratación puede tardar varias horas y tiene costes asociados. Antes de mover datos al nivel de archivo, considere si desconectar los datos de blob puede afectar a los flujos de trabajo.
Puede usar las bibliotecas Azure Portal, PowerShell, CLI de Azure o una de las bibliotecas cliente Azure Storage para administrar el archivado de datos.
Archivado de blobs al cargar
Para archivar uno o varios blobs durante la carga, cree el blob directamente en el nivel de acceso de archivo.
Para archivar un blob o un conjunto de blobs en la carga desde Azure Portal, siga estos pasos:
Vaya al contenedor de destino.
Seleccione el botón Cargar.
Seleccione el archivo o los archivos que desea cargar.
Expanda la sección Opciones avanzadas y establezca el Nivel de acceso en Archivo.
Seleccione el botón Cargar.
Archivar un blob existente
Puede mover un blob existente al nivel de acceso de archivo de una de estas dos maneras:
Puede cambiar el nivel de acceso de un blob con la operación Establecer nivel del blob. Establecer nivel del blob mueve un blob único de un nivel a otro.
Tenga en cuenta que, al mover un blob al nivel de acceso de archivo con Establecer nivel de blob,no podrá leer ni modificar los datos del blob hasta que rehidrate el blob. Si es posible que tenga que leer o modificar los datos del blob antes de que haya transcurrido el intervalo de eliminación temprana, considere la posibilidad de usar una operación de Copia de blob para crear una copia del blob en el nivel de acceso de archivo.
Puede copiar un blob en un nivel con conexión en el nivel de acceso de archivo utilizando la operación Copia de blob. Puede utilizar la operación Copia de blob para copiar un blob desde un nivel con conexión (frecuente o esporádico) al nivel de acceso de archivo. El blob de origen permanece en el nivel con conexión y usted puede seguir leyendo o modificando sus datos en el nivel con conexión.
Archivar un blob existente cambiando su nivel
Utilice la operación Establecer nivel de blob para mover un blob desde el nivel esporádico o frecuente al nivel de acceso de archivo. La operación Establecer nivel de blob es mejor para escenarios en los que no será necesario acceder a los datos archivados antes de que haya transcurrido el intervalo de eliminación temprana.
La operación Establecer nivel de blob cambia el nivel de un único blob. Para mover un conjunto de blobs al nivel de acceso de archivo con un rendimiento óptimo, Microsoft recomienda realizar una operación de archivado masivo. La operación de archivo masivo envía un lote de comandos Establecer nivel de blob al servicio en una única transacción. Para obtener más información, consulteArchivo masivo.
Para mover un blob existente al nivel de acceso de archivo en Azure Portal, siga estos pasos:
Vaya al contenedor del blob.
Seleccione el blob que desea archivar.
Seleccione el botón Cambiar nivel.
Seleccione Archivo en la lista desplegable Nivel de acceso.
Seleccione Guardar.
Archivar un blob existente con una operación de copia
Utilice la operación Copia de blobpara copiar un blob desde el nivel esporádico o frecuente al nivel de acceso de archivo. El blob de origen permanece en el nivel de acceso frecuente o esporádico, mientras que el blob de destino se crea en el nivel de acceso de archivo.
La operación Copia de blob es mejor para escenarios en los que puede tener que leer o modificar los datos archivados antes de que haya transcurrido el intervalo de eliminación temprana. Puede acceder a los datos del blob de origen sin necesidad de rehidratar el blob archivado.
Archivo masivo
Cuando tenga que mover un gran número de blobs al nivel de acceso archivo, use una operación por lotes para obtener un rendimiento óptimo. Una operación por lotes envía varias llamadas API al servicio con una única solicitud. Las operaciones secundarias admitidas por la operación Procesar bobs por lotes incluyen Eliminar blob y Establecer nivel del blob.
Para archivar blobs con una operación por lotes, use una de las bibliotecas Azure Storage cliente. En el ejemplo de código siguiente se muestra cómo realizar una operación por lotes básica con la biblioteca cliente de .NET:
static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get container client, using Azure AD credentials.
BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(),
new DefaultAzureCredential());
// Get URIs for blobs in this container and add to stack.
var uris = new Stack<Uri>();
await foreach (var item in blobContainerClient.GetBlobsAsync())
{
uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
}
// Get the blob batch client.
BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();
try
{
// Perform the bulk operation to archive blobs.
await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
}
}
Para obtener una aplicación de ejemplo detallada que muestra cómo cambiar los niveles con una operación por lotes, consulte AzBulkSetBlobTier.