Sdílet prostřednictvím


Azure Blob Storage ukázek kódu pomocí klientských knihoven JavaScriptu verze 11.x

Tento článek ukazuje ukázky kódu, které používají verzi 11.x klientské knihovny Azure Blob Storage pro JavaScript.

31. března 2023 jsme ukončili podporu knihoven Sady Azure SDK, které nevyhovují aktuálním pokynům sady Azure SDK. Nové knihovny Sady Azure SDK se pravidelně aktualizují, aby bylo zajištění konzistentního prostředí a posílení stavu zabezpečení. Doporučujeme přejít na nové knihovny Sady Azure SDK, abyste mohli využívat nové funkce a důležité aktualizace zabezpečení.

Starší knihovny je sice možné používat i po 31. březnu 2023, ale od Microsoftu už nebudou dostávat oficiální podporu a aktualizace. Další informace najdete v oznámení o vyřazení podpory.

Vytvoření vysoce dostupné aplikace se službou Blob Storage

Stáhněte si ukázkový projekt a rozbalte soubor. Můžete také použít git a stáhnout si kopii aplikace do vývojového prostředí. Ukázkový projekt obsahuje základní Node.js aplikaci.

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

Konfigurace ukázky

Pokud chcete spustit tuto ukázku, musíte do souboru přidat přihlašovací údaje účtu úložiště a pak ho .env.example přejmenovat na .env.

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

Tyto informace najdete v Azure Portal tak, že přejdete na svůj účet úložiště a vyberete Přístupové klíče v části Nastavení.

Nainstalujte požadované závislosti tak, že otevřete příkazový řádek, přejdete do ukázkové složky a zadáte npm install.

Spustit konzolovou aplikaci

Ukázku spustíte tak, že otevřete příkazový řádek, přejdete do ukázkové složky a zadáte node index.js.

Ukázka vytvoří kontejner v účtu úložiště objektů blob, nahraje HelloWorld.png do kontejneru a pak opakovaně zkontroluje, jestli se kontejner a image replikovaly do sekundární oblasti. Po replikaci se zobrazí výzva k zadání D nebo Q (následované klávesou ENTER) a stažení nebo ukončení. Výstup by měl vypadat podobně jako v následujícím příkladu:

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

Vysvětlení ukázky kódu

Se sadou SDK Node.js V10 nejsou obslužné rutiny zpětného volání potřeba. Místo toho ukázka vytvoří kanál nakonfigurovaný s možnostmi opakování a sekundární koncový bod. Tato konfigurace umožňuje aplikaci automaticky přepnout na sekundární kanál, pokud se jí nepodaří získat data prostřednictvím primárního kanálu.

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
  }
});