Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan másolhat blobokat egy forrásobjektum URL-címéről a Java Azure Storage ügyfélkódtárával. Egy blobot másolhat egy forrásból ugyanabban a tárfiókban, egy másik tárfiókban lévő forrásból, vagy bármely akadálymentes objektumból, amely egy adott URL-címen http GET kéréssel kérhető le.
A cikkben tárgyalt kliens könyvtár metódusai a Blob URL-ből és a Blokk URL-ből REST API-műveleteket használják. Ezek a módszerek olyan másolási forgatókönyvek esetében ajánlottak, ahol adatokat szeretne áthelyezni egy tárfiókba, és rendelkeznie kell a forrásobjektum URL-címével. Az aszinkron ütemezést használó másolási műveletekről lásd: Blob másolása aszinkron ütemezéssel Java használatával.
Prerequisites
- Azure-előfizetés – hozzon létre egyet ingyenesen
- Azure Storage-fiók – tárfiók létrehozása
- Java Development Kit (JDK) 8-es vagy újabb verzió (a legjobb élmény érdekében a 17-es verziót javasoljuk)
- Ebben a példában az Apache Maven a projektkezeléshez használatos
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.
Note
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 úgy, hogy beleérti a BOM-fájlt, vagy beleért egy közvetlen függőséget.
Importálási utasítások hozzáadása
Adja hozzá a következő import-utasításokat:
import com.azure.storage.blob.*;
import com.azure.storage.blob.specialized.*;
Authorization
Az engedélyezési mechanizmusnak rendelkeznie kell a másolási művelet végrehajtásához szükséges engedélyekkel. A Microsoft Entra-azonosítóval történő engedélyezéshez (ajánlott) szüksége van az Azure RBAC beépített szerepköreinek egyikére, például a Storage Blob Data közreműködő vagy annál magasabb szintű szerepkörre. További információkért tekintse meg az URL-ről Blob feltöltést (REST API) vagy az URL-ről Blokk feltöltést (REST API) 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.
Blobok másolása forrásobjektum URL-címéről
A Put Blob From URL művelet létrehoz egy új blokkblobot, amelyben a blob tartalma egy adott URL-címről lesz beolvasva. A művelet szinkron módon fejeződik be.
A forrás lehet bármilyen objektum, amely szabványos HTTP GET kéréssel lekérhető a megadott URL-címen. Ide tartoznak a blokkblobok, a hozzáfűző blobok, a lapblobok, a blob pillanatképei, a blobverziók vagy az Azure-on belül vagy kívül elérhető objektumok.
Ha a forrásobjektum blokkblob, a program minden véglegesített blobtartalmat másol. A blokklista azonban nem marad meg, és a nem véglegesített blokkok nem lesznek másolva. A célblob tartalma megegyezik a forrás tartalmával, de a véglegesített blokklista nem marad meg.
A cél mindig egy blokkblob, vagy egy meglévő blokkblob, vagy a művelet által létrehozott új blokkblob. Egy meglévő blob tartalma felülíródik az új blob tartalmával.
A Put Blob From URL művelet mindig a teljes forrásblobot másolja át. A bájtok vagy blokkok tartományának másolása nem támogatott. Ha egy blokkblob tartalmának részleges frissítését forrás URL-címmel szeretné végrehajtani, használja a Blokk elhelyezése URL-címről API-t és a Blokklista elhelyezése API-t.
Ha többet szeretne megtudni a Put Blob From URL műveletről, beleértve a blobméret korlátozásait és a számlázási szempontokat, tekintse meg a Blob URL-ről történő küldése megjegyzéseket.
Blob másolása forrásobjektum URL-címéről
Ez a szakasz áttekintést nyújt az Azure Storage Java-ügyfélkönyvtár által kínált módszerekről, amelyek lehetővé teszik egy másolási művelet végrehajtását egy forrásobjektum URL-jéről.
A következő metódusok körbefuttatják a Put Blob From URL REST API műveletet, és létrehoznak egy új blokkblobot, amelyben a blob tartalma egy adott URL-címről lesz olvasható:
Ezek a metódusok olyan helyzetekben ajánlottak, amikor adatokat szeretne áthelyezni egy tárfiókba, és rendelkeznie kell a forrásobjektum URL-címével.
Nagy objektumok esetén használhatja az egyes blokkokat. Az alábbi metódus körbefuttatja a Put Block From URL REST API-műveletet. Ez a metódus létrehoz egy új blokkot, amely egy blob részeként lesz véglegesítve, ahol a tartalom egy forrás URL-címről lesz beolvasva:
Blob másolása egy Azure-beli forrásból
Ha egy azure-beli forrásból másol egy blobot, a forrásblobhoz való hozzáférés a Microsoft Entra-azonosítón, a közös hozzáférésű jogosultságkódon (SAS) vagy egy fiókkulcson keresztül engedélyezhető.
Az alábbi példa egy azure-beli forrásblobból való másolás forgatókönyvét mutatja be. Az uploadFromUrl metódus opcionálisan elfogadhat egy logikai paramétert, amely jelzi, hogy egy meglévő blob felülírható-e a példában látható módon.
public void copyFromSourceInAzure(BlobClient sourceBlob, BlockBlobClient destinationBlob) {
// Get the source blob URL and create the destination blob
// set overwrite param to true if you want to overwrite an existing blob
destinationBlob.uploadFromUrl(sourceBlob.getBlobUrl(), false);
}
Az uploadFromUrlWithResponse metódus egy BlobUploadFromUrlOptions paramétert is elfogad a művelet további beállításainak megadásához.
Blob másolása külső forrásból
Másolási műveletet bármely olyan forrásobjektumon végrehajthat, amely http GET kéréssel kérhető le egy adott URL-címen, beleértve az Azure-on kívüli akadálymentes objektumokat is. Az alábbi példa egy blob akadálymentes forrásobjektum URL-címéről történő másolásának forgatókönyvét mutatja be.
public void copyFromExternalSource(String sourceURL, BlockBlobClient destinationBlob) {
// Create the destination blob from the source URL
// set overwrite param to true if you want to overwrite an existing blob
destinationBlob.uploadFromUrl(sourceURL, false);
}
Resources
Ha többet szeretne megtudni a blobok másolásáról a Java-hoz készült Azure Blob Storage ügyfélkódtár használatával, tekintse meg az alábbi erőforrásokat.
Kódrészletek
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 cikkben tárgyalt ügyfélkódtár-metódusok a következő REST API-műveleteket használják:
- Blob feltöltése URL-címről (REST API)
- Blokk elhelyezése URL-címről (REST API)
Ügyfélkódtár erőforrásai
Kapcsolódó tartalom
- Ez a cikk a Java Blob Storage fejlesztői útmutatójának része. További információkért tekintse meg a Java-alkalmazás buildeléséhez kapcsolódó fejlesztői útmutatók teljes listáját.