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


Blob másolása forrásobjektum URL-címéről TypeScript használatával

Ez a cikk bemutatja, hogyan másolhat blobokat egy forrásobjektum URL-címéről a JavaScripthez készült Azure Storage-ügyfélkódtár használatá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 ügyfélkódtár-metódusok a Blob url-címről és a Blokk letiltása 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 olyan másolási műveletekről, ahol aszinkron ütemezést szeretne végezni, tekintse meg a Blob másolása aszinkron ütemezéssel a TypeScript használatával című témakört.

Előfeltételek

  • A cikkben szereplő példák feltételezik, hogy már rendelkezik egy projekttel, amely a JavaScripthez készült Azure Blob Storage ügyfélkódtárral dolgozik. Ha többet szeretne megtudni a projekt beállításáról, beleértve a csomagtelepítést, a modulok importálását és egy engedélyezett ügyfélobjektum létrehozását az adaterőforrások használatához, olvassa el az Azure Blob Storage és a TypeScript használatának első lépéseit.
  • Az engedélyezési mechanizmusnak rendelkeznie kell a másolási művelet végrehajtásához szükséges engedélyekkel. További információkért tekintse meg az alábbi REST API-művelet engedélyezési útmutatóját:

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 bármilyen objektum lekérhető egy szabványos HTTP GET kéréssel 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üli vagy azon kívüli akadálymentes 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 Blokkblokk elhelyezése URL-cím api-t és a Tiltólista elhelyezése lehetőséget.

Ha többet szeretne megtudni a műveletről, beleértve a Put Blob From URL blobméret korlátozásait és a számlázási szempontokat, olvassa el a Blob elhelyezése URL-címből című megjegyzést.

Blob másolása forrásobjektum URL-címéről

Ez a szakasz áttekintést nyújt a JavaScripthez készült Azure Storage-ügyfélkódtár és a TypeScript által a másolási művelet forrásobjektum URL-címéről történő végrehajtásához.

A következő metódus körbefuttatja a Blob elhelyezése URL-címből REST API-műveletet, és létrehoz egy új blokkblobot, amelyben a blob tartalma egy adott URL-címről lesz beolvasva:

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 dönthet úgy, hogy az egyes blokkokkal dolgozik. 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:

async function copyFromSourceInAzure(
  sourceBlob: BlockBlobClient,
  destinationBlob: BlockBlobClient
): Promise<void> {
  // Get the source blob URL and create the destination blob
  await destinationBlob.syncUploadFromURL(sourceBlob.url);
}

A syncUploadFromURL metódus a BlockBlobSyncUploadFromURLOptions paramétert is elfogadhatja a művelet további beállításainak megadásához.

Blob másolása az Azure-on kívüli 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.

async function copyFromExternalSource(
  sourceUrl: string,
  destinationBlob: BlockBlobClient
): Promise<void> {
  // Create the destination blob from the source URL
  await destinationBlob.syncUploadFromURL(sourceUrl);
}

Források

A blobok JavaScripthez és TypeScripthez készült Azure Blob Storage-ügyfélkódtár használatával történő másolásával kapcsolatos további információkért tekintse meg az alábbi erőforrásokat.

REST API-műveletek

Az Azure SDK for JavaScript és TypeScript 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 ismerős nyelvi paradigmákon keresztül. A cikkben tárgyalt ügyfélkódtár-metódusok a következő REST API-műveleteket használják:

Kódminták

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