Sdílet prostřednictvím


Vytvoření SAS služby pro kontejner nebo objekt blob pomocí JavaScriptu

Sdílený přístupový podpis (SAS) umožňuje udělit omezený přístup ke kontejnerům a objektům blob ve vašem účtu úložiště. Při vytváření sdíleného přístupového podpisu zadáte jeho omezení, včetně toho, ke kterým prostředkům Azure Storage má klient povolený přístup, jaká oprávnění k těmto prostředkům má a jak dlouho je SAS platný.

Každý SAS je podepsaný klíčem. Sas můžete podepsat jedním ze dvou způsobů:

  • S klíčem vytvořeným pomocí přihlašovacích údajů Microsoft Entra. SAS podepsaný pomocí přihlašovacích údajů Microsoft Entra je SAS delegování uživatele. Klientovi, který vytvoří SAS delegování uživatele, musí být přiřazena role Azure RBAC, která zahrnuje akci Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey . Další informace najdete v tématu Vytvoření SAS delegování uživatele.
  • S klíčem účtu úložiště. Sas služby i SAS účtu jsou podepsané klíčem účtu úložiště. Klient, který vytvoří SAS služby, musí mít buď přímý přístup k klíči účtu, nebo musí mít přiřazené oprávnění Microsoft.Storage/storageAccounts/listkeys/action . Další informace najdete v tématu Vytvoření sdíleného přístupového podpisu služby nebo vytvoření sdíleného přístupového podpisu účtu.

Poznámka:

Sas delegování uživatele nabízí vynikající zabezpečení SAS podepsanému klíčem účtu úložiště. Microsoft doporučuje používat SAS delegování uživatele, pokud je to možné. Další informace najdete v tématu Udělení omezeného přístupu k datům pomocí sdílených přístupových podpisů (SAS).

Tento článek ukazuje, jak pomocí klíče účtu úložiště vytvořit SAS služby pro kontejner nebo objekt blob s klientskou knihovnou Blob Storage pro JavaScript.

Vytvoření SAS služby pro kontejner objektů blob

Následující příklad kódu vytvoří SAS pro kontejner. Pokud je zadaný název existující uložené zásady přístupu, je tato zásada přidružená k SAS. Pokud nejsou k dispozici žádné uložené zásady přístupu, vytvoří kód v kontejneru ad hoc SAS.

Sdílený přístupový podpis služby je podepsaný přístupovým klíčem účtu. Pomocí Třídy StorageSharedKeyCredential vytvořte přihlašovací údaje, které se používají k podepsání SAS. Dále zavolejte funkci generateBlobSASQueryParameters , která poskytuje požadované parametry pro získání řetězce tokenu SAS.

// Create a service SAS for a blob container
function getContainerSasUri(containerClient, sharedKeyCredential, storedPolicyName) {
    const sasOptions = {
        containerName: containerClient.containerName,
        permissions: ContainerSASPermissions.parse("c")
    };

    if (storedPolicyName == null) {
        sasOptions.startsOn = new Date();
        sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
    } else {
        sasOptions.identifier = storedPolicyName;
    }

    const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
    console.log(`SAS token for blob container is: ${sasToken}`);

    return `${containerClient.url}?${sasToken}`;
}

Vytvoření SAS služby pro objekt blob

Následující příklad kódu vytvoří SAS pro objekt blob. Pokud je zadaný název existující uložené zásady přístupu, je tato zásada přidružená k SAS. Pokud nejsou k dispozici žádné uložené zásady přístupu, vytvoří kód v objektu blob ad hoc SAS.

Pokud chcete vytvořit SAS služby pro objekt blob, zavolejte funkci generateBlobSASQueryParameters , která poskytuje požadované parametry.

// Create a service SAS for a blob
function getBlobSasUri(containerClient, blobName, sharedKeyCredential, storedPolicyName) {
    const sasOptions = {
        containerName: containerClient.containerName,
        blobName: blobName
    };

    if (storedPolicyName == null) {
        sasOptions.startsOn = new Date();
        sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
        sasOptions.permissions = BlobSASPermissions.parse("r");
    } else {
        sasOptions.identifier = storedPolicyName;
    }

    const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
    console.log(`SAS token for blob is: ${sasToken}`);

    return `${containerClient.getBlockBlobClient(blobName).url}?${sasToken}`;
}

Zdroje informací pro vývoj s využitím JavaScriptu

Následující odkazy poskytují užitečné zdroje informací pro vývojáře, kteří používají klientskou knihovnu Azure Storage pro JavaScript.

Rozhraní API služby Blob Storage

JavaScript tools

Další kroky