Establecimiento del nivel de acceso de un blob

Puede establecer el nivel de acceso de un blob de cualquiera de las maneras siguientes:

  • Estableciendo el nivel de acceso en línea predeterminado (frecuente o esporádico) para la cuenta de almacenamiento. Los blobs de la cuenta heredan este nivel de acceso a menos que invalide explícitamente la configuración de un blob individual.
  • Al establecer explícitamente el nivel de un blob en la carga. Puede crear un blob en el nivel de acceso frecuente, esporádico o de archivo.
  • Cambiando el nivel de un blob existente con una operación de Establecer nivel de blob. Normalmente, usaría esta operación para pasar de un nivel más frecuente a uno más esporádico.
  • Copiando un blob con una operación Copiar blob. Normalmente, usaría esta operación para pasar de un nivel más esporádico a uno más frecuente.

En este artículo se describe cómo administrar un blob en un nivel de acceso en línea. Para obtener más información sobre cómo mover un blob al nivel de archivo, consulte Archivado de un blob. Para más información sobre cómo rehidratar un blob desde el nivel de archivo, consulte Rehidratación de un blob archivado a un nivel en línea.

Para más información acerca de los niveles de acceso para blobs, consulte Niveles de acceso para los datos de blobs.

Establecimiento del nivel de acceso predeterminado de una cuenta de almacenamiento

La configuración predeterminada del nivel de acceso para una cuenta de almacenamiento de uso general v2 determina en qué nivel en línea se crea un nuevo blob de forma predeterminada. Puede establecer el nivel de acceso predeterminado para una cuenta de almacenamiento de uso general v2 en el momento de crear la cuenta o actualizando la configuración de una cuenta existente.

Al cambiar la configuración predeterminada del nivel de acceso para una cuenta de almacenamiento de uso general v2 existente, el cambio se aplica a todos los blobs de la cuenta para la que no se ha establecido explícitamente un nivel de acceso. Cambiar el nivel de acceso predeterminado puede tener un impacto en la facturación. Para obtener más información, consulte Configuración del nivel de acceso predeterminado de la cuenta.

Para establecer el nivel de acceso predeterminado para una cuenta de almacenamiento en el momento de la creación en Azure Portal, siga estos pasos:

  1. Vaya a la página Cuentas de almacenamiento y seleccione el botón Crear.

  2. Rellene la pestaña Datos básicos.

  3. En la pestaña Opciones avanzadas, en Blob Storage, establezca el nivel de acceso en frecuente o esporádico. La configuración predeterminada es frecuente.

  4. Seleccione Revisar y crear para validar la configuración y crear la cuenta de almacenamiento.

    Captura de pantalla que muestra cómo establecer el nivel de acceso predeterminado al crear una cuenta de almacenamiento.

Para actualizar el nivel de acceso predeterminado para una cuenta de almacenamiento existente en Azure Portal, siga estos pasos:

  1. Vaya a la cuenta de almacenamiento en Azure Portal.

  2. En Configuración, seleccione Configuración.

  3. Busque la configuración Nivel de acceso a blobs (valor predeterminado) y seleccione frecuente o esporádico. El valor predeterminado es frecuente si no ha configurado previamente esta propiedad.

  4. Guarde los cambios.

Establecimiento del nivel de un blob en la carga

Al cargar un blob en Azure Storage, tiene dos opciones para establecer el nivel del blob en la carga:

  • Puede especificar explícitamente el nivel en el que se creará el blob. Esta configuración invalida el nivel de acceso predeterminado para la cuenta de almacenamiento. Puede establecer el nivel de un blob o un conjunto de blobs al cargarlos en frecuente, esporádico o de archivo.
  • Puede cargar un blob sin especificar un nivel. En este caso, el blob se creará en el nivel de acceso predeterminado especificado para la cuenta de almacenamiento (ya sea de frecuente o esporádico).

Si va a cargar un nuevo blob que usa un ámbito de cifrado, no puede cambiar el nivel de acceso de ese blob.

En las secciones siguientes se describe cómo especificar que un blob se cargue en el nivel frecuente o esporádico. Para más información sobre cómo archivar un blob al cargarlo, consulte Archive blobs on upload (Archivado de blobs al cargar).

Cargar un blob a un nivel en línea específico

Para crear un blob en el nivel frecuente o esporádico, especifíquelo al crear el blob. El nivel de acceso especificado en la carga invalida el nivel de acceso predeterminado para la cuenta de almacenamiento.

Para cargar un blob o un conjunto de blobs en un nivel específico desde Azure Portal, siga estos pasos:

  1. Vaya al contenedor de destino.

  2. Seleccione el botón Cargar.

  3. Seleccione el archivo o los archivos que desea cargar.

  4. Expanda la sección Opciones avanzadas y establezca el nivel de acceso en frecuente o esporádico.

  5. Seleccione el botón Cargar.

    Captura de pantalla que muestra cómo cargar blobs en un nivel en línea en Azure Portal.

Cargar un blob al nivel predeterminado

Las cuentas de almacenamiento tienen una configuración predeterminada del nivel de acceso que indica el nivel en línea en el que se crea un nuevo blob. La configuración predeterminada del nivel de acceso se puede establecer en frecuente o esporádico. El comportamiento de esta configuración es ligeramente diferente en función del tipo de cuenta de almacenamiento:

  • El nivel de acceso predeterminado de una nueva cuenta de almacenamiento v2 de uso general se establece en el nivel de acceso frecuente de manera predeterminada. Puede cambiar la configuración predeterminada del nivel de acceso al crear una cuenta de almacenamiento o después de crearla.
  • Al crear una cuenta heredada de Blob Storage, debe especificar la configuración de nivel de acceso predeterminada como frecuente o esporádico al crear una cuenta de almacenamiento. Puede cambiar la configuración predeterminada del nivel de acceso para una cuenta de almacenamiento después de crearla.

Un blob que no tiene un nivel asignado explícitamente infiere el nivel de la configuración predeterminada del nivel de acceso de la cuenta. Puede determinar si el nivel de acceso de un blob se deduce mediante Azure Portal, PowerShell o CLI de Azure.

Si el nivel de acceso de un blob se infiere de la configuración predeterminada del nivel de acceso de la cuenta, Azure Portal muestra el nivel de acceso como Frecuente (inferido) o Esporádico (inferido) .

Captura de pantalla que muestra blobs con el nivel de acceso predeterminado en Azure Portal.

Traslado de un blob a un nivel en línea diferente

Puede mover un blob a otro nivel en línea de una de estas dos maneras:

  • Cambiando el nivel de acceso.
  • Copiando el blob en otro nivel en línea.

Para obtener más información sobre cada una de estas opciones, consulte Configuración o cambio del nivel de un blob.

Use PowerShell, la CLI de Azure, AzCopy v10 o una de las bibliotecas cliente de Azure Storage para mover un blob a otro nivel.

Cambio del nivel de un blob

Al cambiar el nivel de un blob, se mueve ese blob y todos sus datos al nivel de destino mediante una llamada a la operación Set Blob Tier (directamente o a través de una directiva de administración del ciclo de vida) o mediante el comando azcopy set-properties con AzCopy. Esta suele ser la mejor opción para cambiar un blob de un nivel más frecuente a uno más esporádico.

Para cambiar el nivel de un blob a un nivel más esporádico en Azure Portal, siga estos pasos:

  1. Vaya al blob cuyo nivel desea cambiar.

  2. Seleccione el blob y, a continuación, seleccione el botón Cambiar.

  3. En el cuadro de diálogo Cambiar nivel, seleccione el nivel de destino.

  4. Seleccione el botón Guardar.

    Captura de pantalla que muestra cómo cambiar el nivel de un blob en Azure Portal

Copia de un blob a un nivel en línea diferente

Mediante una llamada a la operación Copy Blob para copiar un blob de un nivel a otro. Cuando se copia un blob a un nivel diferente, se mueve ese blob y todos sus datos al nivel de destino. El blob de origen permanece en el nivel original y se crea uno nuevo en el nivel de destino. Se recomienda llamar a Copy Blob en la mayoría de los escenarios en los que se va a mover un blob a un nivel más frecuente, o se va a rehidratar un blob desde el nivel de archivo.

N/D

Almacenamiento en niveles masivos

Para mover blobs a otro nivel de un contenedor o una carpeta, enumere blobs y llame a la operación Set Blob Tier en cada uno de ellos. En el ejemplo siguiente se muestra cómo realizar esta operación:

N/D

Cuando tenga que mover un gran número de blobs al nivel de 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.

Nota:

La suboperación Establecer nivel de blob de la operación de Lote de blob aún no se admite en las cuentas que tienen un espacio de nombres jerárquico.

Para cambiar el nivel de acceso de los blobs con una operación por lotes, use una de las bibliotecas de cliente de Azure Storage. 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.

Pasos siguientes