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


kódminták Azure Blob Storage JavaScript 11.x-es verziójú ügyfélkódtárak használatával

Ez a cikk a JavaScripthez készült Azure Blob Storage ügyfélkódtár 11.x-es verzióját használó kódmintákat mutatja be.

2023. március 31-én megszüntettük az Azure SDK-kódtárak támogatását, amelyek nem felelnek meg az Azure SDK jelenlegi irányelveinek. Az új Azure SDK-kódtárak rendszeresen frissülnek, hogy egységes élményeket és a biztonsági állapotot erősítsék. Javasoljuk, hogy térjen át az új Azure SDK-kódtárakra, hogy kihasználhassa az új képességeket és a kritikus biztonsági frissítéseket.

Bár a régebbi kódtárak 2023. március 31-e után is használhatók, a Microsofttól már nem kapnak hivatalos támogatást és frissítéseket. További információkért lásd a támogatás kivonásáról szóló közleményt.

Magas rendelkezésre állású alkalmazás létrehozása a Blob Storage használatával

Töltse le a mintaprojektet , és bontsa ki a fájlt. A git használatával is letöltheti az alkalmazás egy másolatát a fejlesztői környezetbe. A mintaprojekt egy alapszintű Node.js alkalmazást tartalmaz.

git clone https://github.com/Azure-Samples/storage-node-v10-ha-ra-grs.git

A minta konfigurálása

A minta futtatásához hozzá kell adnia a tárfiók hitelesítő adatait a .env.example fájlhoz, majd át kell neveznie a következőre: .env.

AZURE_STORAGE_ACCOUNT_NAME=<replace with your storage account name>
AZURE_STORAGE_ACCOUNT_ACCESS_KEY=<replace with your storage account access key>

Ezeket az információkat a Azure Portal a tárfiókra lépve, majd a Beállítások szakaszban válassza a Hozzáférési kulcsok lehetőséget.

Telepítse a szükséges függőségeket egy parancssor megnyitásával, navigáljon a mintamappához, majd írja be a következőt npm install: .

A konzolalkalmazás futtatása

A minta futtatásához nyisson meg egy parancssort, keresse meg a mintamappát, majd írja be a következőt node index.js: .

A minta létrehoz egy tárolót a Blob Storage-fiókban, feltöltiHelloWorld.png a tárolóba, majd ismételten ellenőrzi, hogy a tároló és a rendszerkép replikálva lett-e a másodlagos régióba. A replikáció után a rendszer kéri, hogy írja be a D vagy a Q (majd az ENTER) kifejezést a letöltéshez vagy a kilépéshez. A kimenetnek az alábbi példához kell hasonlítania:

Created container successfully: newcontainer1550799840726
Uploaded blob: HelloWorld.png
Checking to see if container and blob have replicated to secondary region.
[0] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
[1] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
...
[31] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
[32] Container found, but blob has not replicated to secondary region yet.
...
[67] Container found, but blob has not replicated to secondary region yet.
[68] Blob has replicated to secondary region.
Ready for blob download. Enter (D) to download or (Q) to quit, followed by ENTER.
> D
Attempting to download blob...
Blob downloaded from primary endpoint.
> Q
Exiting...
Deleted container newcontainer1550799840726

A kódminta ismertetése

A Node.js V10 SDK-val a visszahívási kezelők szükségtelenek. Ehelyett a minta létrehoz egy újrapróbálkozással és egy másodlagos végponttal konfigurált folyamatot. Ez a konfiguráció lehetővé teszi, hogy az alkalmazás automatikusan átváltson a másodlagos folyamatra, ha nem éri el az adatokat az elsődleges folyamaton keresztül.

const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
const storageAccessKey = process.env.AZURE_STORAGE_ACCOUNT_ACCESS_KEY;
const sharedKeyCredential = new SharedKeyCredential(accountName, storageAccessKey);

const primaryAccountURL = `https://${accountName}.blob.core.windows.net`;
const secondaryAccountURL = `https://${accountName}-secondary.blob.core.windows.net`;

const pipeline = StorageURL.newPipeline(sharedKeyCredential, {
  retryOptions: {
    maxTries: 3,
    tryTimeoutInMs: 10000,
    retryDelayInMs: 500,
    maxRetryDelayInMs: 1000,
    secondaryHost: secondaryAccountURL
  }
});