Megosztás a következőn keresztül:


Blokkblob hozzáférési szintjének beállítása vagy módosítása Java használatával

Ez a cikk bemutatja, hogyan állíthatja be vagy módosíthatja a blokkblobok hozzáférési szintjét a Java Azure Storage ügyfélkódtárával.

Előfeltételek

Saját környezet beállítása

Ha nem rendelkezik meglévő projekttel, ez a szakasz bemutatja, hogyan állíthat be egy projektet a Java Azure Blob Storage ügyfélkódtárával való együttműködésre. További információ: Az Azure Blob Storage és a Java használatának első lépései.

A jelen cikkben szereplő példakódok használatához kövesse az alábbi lépéseket a projekt beállításához.

Feljegyzés

Ez a cikk a Maven buildelési eszközével hozza létre és futtatja a példakódot. Más buildelési eszközök, például a Gradle is együttműködnek a Java Azure SDK-val.

Csomagok telepítése

Nyissa meg a pom.xml fájlt a szövegszerkesztőben. Telepítse a csomagokat a BOM-fájl belefoglalásával, vagy egy közvetlen függőség belefoglalásával.

Importálási utasítások hozzáadása

Adja hozzá a következő import-utasításokat:

import com.azure.core.util.polling.LongRunningOperationStatus;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.options.BlobBeginCopyOptions;

Engedélyezés

Az engedélyezési mechanizmusnak rendelkeznie kell a blob hozzáférési szintjének beállításához szükséges engedélyekkel. A Microsoft Entra ID-vel való engedélyezéshez (ajánlott) az Azure RBAC beépített Storage Blob Data Közreműködő szerepkörre vagy magasabb szintű szerepkörre van szükség. További információkért tekintse meg a blobszint beállításával kapcsolatos engedélyezési útmutatót.

Ügyfélobjektum létrehozása

Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozzon létre egy BlobServiceClient-példányt.

Az alábbi példa a BlobServiceClientBuilder használatával BlobServiceClienthoz létre objektumotDefaultAzureCredential, és bemutatja, hogyan hozhat létre tároló- és blobügyfeleket, ha szükséges:

// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
        .endpoint("https://<storage-account-name>.blob.core.windows.net/")
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildClient();

// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
        .getBlobContainerClient("<container-name>");

// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
        .getBlobClient("<blob-name>");

Az ügyfélobjektumok létrehozásáról és kezeléséről további információt az adaterőforrásokat kezelő ügyfélobjektumok létrehozása és kezelése című témakörben talál.

Tudnivalók a blokkblobok hozzáférési szintjeiről

A tárolási igények költségeinek kezelése érdekében hasznos lehet az adatok rendszerezése annak alapján, hogy milyen gyakran és mennyi ideig kell megőrizni azokat. Az Azure Storage különböző hozzáférési szinteket kínál, így a blobadatok a használatuktól függően a legköltséghatékonyabb módon tárolhatók.

Blobadatok hozzáférési szintjei

Az Azure Storage hozzáférési szintjei a következők:

  • Gyakori elérésű réteg – A gyakran használt vagy módosított adatok tárolására optimalizált online réteg. A gyakori elérésű réteg a legmagasabb tárolási költségekkel rendelkezik, de a legalacsonyabb hozzáférési költségekkel.
  • Ritka elérésű réteg – Olyan online réteg, amely ritkán elért vagy módosított adatok tárolására van optimalizálva. A ritka elérésű rétegben lévő adatokat legalább 30 napig kell tárolni. A ritka elérésű réteg alacsonyabb tárolási és magasabb hozzáférési költségekkel rendelkezik a gyakori elérésű szinthez képest.
  • Hideg réteg – Olyan online réteg, amely ritkán használt vagy módosított adatok tárolására van optimalizálva. A nagyon ritka elérésű szinten lévő adatokat legalább 90 napig érdemes tárolni. A hideg szint alacsonyabb tárolási költségekkel és magasabb hozzáférési költségekkel rendelkezik a hűvös szinthez képest.
  • Archív szint – Olyan offline réteg, amely ritkán elérhető adatok tárolására van optimalizálva, és amely rugalmas késési követelményekkel rendelkezik az órák sorrendjében. Az archív szinten lévő adatokat legalább 180 napig kell tárolni.

A hozzáférési szintekről további információt a blobadatok hozzáférési szintjei című témakörben talál.

Bár egy blob az Archív hozzáférési szinten van, offline állapotúnak minősül, és nem olvasható és nem módosítható. Egy archivált blob adatainak olvasásához vagy módosításához először rehidratálnia kell a blobot egy online szintre. Ha többet szeretne megtudni arról, hogyan lehet egy blobot az Archív szintről egy online szintre visszaállítani, tekintse meg az Archív szintről történő blob-visszaállítást.

Korlátozások

A hozzáférési szint beállítása csak blokkblobokon engedélyezett. A blokkblobok hozzáférési szintjének beállítására vonatkozó korlátozásokról további információt a Blobszint beállítása (REST API) című témakörben talál.

Feljegyzés

A hozzáférési szint Cold beállításához Java nyelv használatával a 12.21.0-s vagy újabb ügyfélkönyvtár-verziót kell használnia.

Blob hozzáférési szintjének beállítása feltöltés közben

A Blob hozzáférési szintje feltöltéskor a BlobUploadFromFileOptions osztály használatával állítható be. Az alábbi példakód bemutatja, hogyan állíthatja be a hozzáférési szintet egy blob feltöltésekor:

public void uploadBlobWithAccessTier(BlobContainerClient blobContainerClient, Path filePath) {
    String fileName = filePath.getFileName().toString();
    BlobClient blobClient = blobContainerClient.getBlobClient(fileName);

    BlobUploadFromFileOptions options = new BlobUploadFromFileOptions(filePath.toString())
            .setTier(AccessTier.COOL);

    try {
        Response<BlockBlobItem> blockBlob = blobClient.uploadFromFileWithResponse(options, null, null);
    } catch (UncheckedIOException ex) {
        System.err.printf("Failed to upload from file: %s%n", ex.getMessage());
    }
}

Ha többet szeretne megtudni egy blob Java-nal való feltöltéséről, olvassa el a Blob feltöltése Javával című témakört.

Meglévő blokkblob hozzáférési szintjének módosítása

A meglévő blokkblobok hozzáférési szintjét az alábbi módszerek egyikével módosíthatja:

Az alábbi példakód bemutatja, hogyan módosíthatja a hozzáférési szintet ritka elérésűre egy meglévő blob esetében:

public void changeBlobAccessTier(BlobClient blobClient) {
    // Change the blob's access tier to cool
    blobClient.setAccessTier(AccessTier.COOL);
}

Archivált blob újrahidratálása esetén használja a setAccessTierWithResponse metódust. Állítsa be a tier paramétert érvényes AccessTier értékre HOT, COOLvagy COLDARCHIVE. A paramétert igény szerint beállíthatja priority érvényes RehydratePriority értékre HIGH vagy STANDARD.

Az alábbi példakód bemutatja, hogyan lehet rehidratálni egy archivált blobot a hozzáférési szint gyakori elérésűre való módosításával:

public void rehydrateBlobSetAccessTier(BlobClient blobClient) {
    // Rehydrate the blob to hot tier using a standard rehydrate priority
    blobClient.setAccessTierWithResponse(
        AccessTier.HOT,
        RehydratePriority.STANDARD,
        null, 
        null, 
        null);
}

A setAccessTierWithResponse metódus egy BlobSetAccessTierOptions paramétert is elfogad a konfigurációs beállítások megadásához.

Blob másolása egy másik hozzáférési szintre

A meglévő blokkblobok hozzáférési szintjét úgy módosíthatja, hogy egy másolási művelet részeként meg kell adnia egy hozzáférési szintet. Ha módosítani szeretné a hozzáférési szintet egy másolási művelet során, használja a BlobBeginCopyOptions osztályt.

A setTier metódus használatával megadhatja az AccessTier értéket mint HOT, COOL, COLD, vagy ARCHIVE. Ha másolási művelettel rehidratál egy blobot az archív rétegből, a setRehydratePriority metódussal adja meg a RehydratePriority értéket értékként HIGH vagy STANDARD.

Az alábbi példakód bemutatja, hogyan hidratálhat egy archivált blobot a gyakori elérésű szintre másolási művelettel:

public void rehydrateBlobUsingCopy(
    BlobClient sourceArchiveBlob,
    BlobClient destinationRehydratedBlob) {
    // Note: the destination blob must have a different name than the archived source blob

    // Start the copy operation and wait for it to complete
    final SyncPoller<BlobCopyInfo, Void> poller = destinationRehydratedBlob.beginCopy(
            new BlobBeginCopyOptions(sourceArchiveBlob.getBlobUrl())
                    .setTier(AccessTier.HOT)
                    .setRehydratePriority(RehydratePriority.STANDARD));
                    
    PollResponse<BlobCopyInfo> response = poller
            .waitUntil(LongRunningOperationStatus.SUCCESSFULLY_COMPLETED);
}

Ha többet szeretne megtudni a blobOk Java-val való másolásáról, olvassa el a Blob másolása Javával című témakört.

Források

A hozzáférési szintek Java-hoz készült Azure Blob Storage-ügyfélkódtár használatával történő beállításával kapcsolatos további információkért tekintse meg az alábbi erőforrásokat.

Kódminták

REST API-műveletek

Az Azure SDK for Java olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismert Java-paradigmákon keresztül. A hozzáférési szintek beállításához használt ügyfélkódtár-metódusok a következő REST API-műveletet használják:

Ügyfélkódtár erőforrásai

Lásd még