Sdílet prostřednictvím


Řešení potíží s ukládáním prostředků do mezipaměti

Ukládání prostředků do mezipaměti zrychluje načítání balíčků tím, že se stahované balíčky (prostředky) ukládají místně nebo do sítě, čímž se snižuje závislost na externích zdrojích. Tato příručka pomáhá uživatelům, kteří mají potíže s nastavením nebo operací mezipaměti prostředků.

Pokyny k počátečnímu nastavení najdete v dokumentaci k ukládání prostředků do mezipaměti.

Diagnostika chyb ukládání prostředků do mezipaměti

Nástroj vcpkg kontroluje dostupné mezipaměti prostředků před stažením artefaktů z internetu. Ve výchozím nastavení se bezobslužně vrátí k externím zdrojům, pokud se prostředek v mezipaměti nenajde.

Možnost x-block-origin transformuje selhání obnovení prostředků na explicitní chyby sestavení, což brání nezamýšleným externím stahováním. Tuto možnost použijte k vylepšení zabezpečení a zviditelnění chybějících přístupů do mezipaměti.

Zjištění problémů s obnovením prostředků

Problémy s obnovením prostředků jsou ve výchozím nastavení bezobslužné. Dají se zjistit ověřením adresy URL pro stažení artefaktu.

Downloading 7zip...
https://www.7-zip.org/a/7z2301-extra.7z -> C:\vcpkg\downloads\7z2301-extra.7z

Nebo explicitní chyba, pokud je tato možnost povolená x-block-origin :

error: Failed to download from mirror set

Zjištění problémů s nahráváním prostředků

Pokud je zdroj prostředků správně nakonfigurovaný, vcpkg vygeneruje upozornění, když prostředek nejde nahrát do mezipaměti.

warning: failed to store back to mirror

Artefakty se nenahrávají ani neobnoví z mezipaměti prostředků

Back-end x-azurl mezipaměti prostředků poskytovaný nástrojem vcpkg je navržený tak, aby fungoval s kontejnery azure Storage, může pracovat s dalšími službami úložiště, které přijímají požadavky PUT s jednoduchým ověřováním tokenů.

Konfigurace má následující formát:

x-azurl,<url>,<sas>[,<rw>]

  • <url>: Základní adresa URL kontejneru
  • <sas>: Token sdíleného přístupového podpisu (SAS) při práci s kontejnery Azure Storage; nebo parametr žádosti o ověření, pokud pracujete s jinými poskytovateli.
  • <rw>: (Volitelné) Konfigurace oprávnění ke čtení a zápisu

Poznámka:

I když je navržený pro práci s kontejnery Azure Storage. Back-end x-azurl lze použít pro služby úložiště, které přijímají požadavky ve formě <url>?<sas>.

Výsledkem je například x-azurl,https://contoso.com,token=TOKEN_VALUE,readwrite požadavek ve formě https://contoso.com?token=TOKEN_VALUE.

Pokud poskytovatel mezipaměti prostředků nevyžaduje žádnou autorizaci, <sas> může být parametr prázdný. Například x-azurl,https://contoso.com,,readwrite.

Příčina 1: Adresa URL není správně naformátovaná

Při nastavování mezipaměti prostředků se ujistěte, že je součástí https:// adresy URL.

Postup řešení:

1 – Ověřte správnost nakonfigurované adresy URL.

Příčina 2: Autorizační token není správně naformátovaný

Vcpkg používá <sas> parametr k ověření u vašeho poskytovatele mezipaměti prostředků. Existuje celá řada důvodů, proč se autorizace nemusí podařovat.

Pokud používáte kontejner služby Azure Storage, <sas> měl by parametr obsahovat pouze token SAS bez jakéhokoli jiného formátování parametrů požadavku. Příklad:

x-azurl,https://mystorageaccount.blob.core.windows.net/mystoragecontainer,sasvaluehere,readwrite

Další informace najdete v dokumentaci k generování tokenů SAS. Ujistěte se, že oprávnění ke čtení a zápisu vygenerovaného tokenu odpovídají požadovanému případu použití.

Pokud používáte jiného zprostředkovatele, možná budete muset parametry požadavku naformátovat správně. Například předpona názvu parametru před hodnotou tokenu.

x-azurl,https://contoso.com,authorization=tokenvaluehere,readwrite.

Postup řešení:

1. Ověřte, že platnost autorizačního tokenu nevypršela.

2 . Ověřte, že autorizační token má správná oprávnění k vašemu kontejneru.

3 – Ověření správnosti hodnoty autorizačního tokenu

4 – Ověřte, že formát autorizačního tokenu odpovídá očekávanému formátu vašeho poskytovatele.

Zobrazuje se chybová zpráva "Nepodařilo se stáhnout ze zrcadlové sady"

K tomuto problému dochází v případě, že konfigurace ukládání prostředků do mezipaměti obsahuje x-block-origin.

Použití x-block-origin chyb při obnovení prostředku z jakékoli nakonfigurované mezipaměti na selhání sestavení balíčku. Zabránění potenciálně nežádoucímu přístupu k externím zdrojům.

Postup řešení:

1. Ověřte, že vaše síť má přístup ke zdroji prostředků.

2 – Ověřte, že požadovaný prostředek existuje v alespoň jedné z nakonfigurovaných mezipamětí prostředků. Pokud balíček neexistuje, existují dvě metody řešení problému:

  • Zakázáním x-block-origin dočasně povolíte vcpkg stáhnout prostředek a nahrát ho do nakonfigurované mezipaměti prostředků.
  • Ruční nahrání prostředku do jedné z nakonfigurovaných mezipamětí prostředků

3 – Ověřte, že jsou mezipaměti prostředků správně nakonfigurované, postupujte podle kroků v artefaktech, které se nenahrávají nebo obnovují z mezipaměti prostředků.

Problém tu není uvedený

Pokud tady váš problém není uvedený, navštivte naše úložiště a vytvořte nový problém.