Ř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.