Rozwiązywanie problemów z buforowaniem zasobów
Buforowanie zasobów przyspiesza pobieranie pakietów przez przechowywanie pobranych pakietów (zasobów) lokalnie lub w sieci, co zmniejsza zależność od źródeł zewnętrznych. Ten przewodnik ułatwia użytkownikom trudności z konfiguracją lub operacją pamięci podręcznej zasobów.
Aby uzyskać instrukcje dotyczące początkowej konfiguracji, zapoznaj się z dokumentacją buforowania zasobów.
Diagnozowanie błędów buforowania zasobów
Narzędzie vcpkg sprawdza dostępne pamięci podręczne zasobów przed pobraniem artefaktów z Internetu. Domyślnie dyskretnie wraca do źródeł zewnętrznych, jeśli element zawartości nie zostanie znaleziony w pamięci podręcznej.
Opcja "x-block-origin" przekształca błędy przywracania zasobów w jawne błędy kompilacji, uniemożliwiając niezamierzone pobieranie zewnętrzne. Użyj tej opcji, aby zwiększyć bezpieczeństwo i zwiększyć widoczność brakujących trafień pamięci podręcznej.
Wykrywanie problemów z przywracaniem zasobów
Problemy z przywracaniem zasobów są domyślnie dyskretne. Można je wykryć, sprawdzając adres URL pobierania artefaktu.
Downloading 7zip...
https://www.7-zip.org/a/7z2301-extra.7z -> C:\vcpkg\downloads\7z2301-extra.7z
Lub jawny błąd po włączeniu x-block-origin
opcji:
error: Failed to download from mirror set
Wykrywanie problemów z przekazywaniem zasobów
Jeśli źródło zasobów jest poprawnie skonfigurowane, narzędzie vcpkg emituje ostrzeżenie, gdy nie można przekazać elementu zawartości do pamięci podręcznej.
warning: failed to store back to mirror
Artefakty nie są przekazywane ani przywracane z pamięci podręcznej zasobów
x-azurl
Zaplecze pamięci podręcznej zasobów udostępnione przez narzędzie vcpkg jest przeznaczone do pracy z kontenerami usługi Azure Storage, może współpracować z innymi usługami magazynu, które akceptują żądania PUT z prostym uwierzytelnianiem tokenu.
Konfiguracja ma następujący format:
x-azurl,<url>,<sas>[,<rw>]
<url>
: podstawowy adres URL kontenera<sas>
: token sygnatury dostępu współdzielonego (SAS) w przypadku pracy z kontenerami usługi Azure Storage; lub parametr żądania uwierzytelniania w przypadku pracy z innymi dostawcami.<rw>
: (Opcjonalnie) konfiguracja uprawnień do odczytu/zapisu
Uwaga
Chociaż jest przeznaczony do pracy z kontenerami usługi Azure Storage. Zaplecze x-azurl
może służyć do obsługi usług magazynu, które akceptują żądania w postaci <url>?<sas>
.
Na przykład x-azurl,https://contoso.com,token=TOKEN_VALUE,readwrite
powoduje wyświetlenie żądania w postaci https://contoso.com?token=TOKEN_VALUE
.
Jeśli dostawca pamięci podręcznej zasobów nie wymaga autoryzacji, <sas>
parametr można pozostawić pusty. Na przykład x-azurl,https://contoso.com,,readwrite
.
Przyczyna 1. Adres URL nie jest poprawnie sformatowany
Podczas konfigurowania pamięci podręcznej zasobów upewnij się, że został uwzględniny https://
jako część adresu URL.
Kroki umożliwiające rozwiązanie problemu:
1 — Sprawdź, czy skonfigurowany adres URL jest poprawny.
Przyczyna 2. Token autoryzacji nie jest poprawnie sformatowany
Narzędzie vcpkg używa parametru <sas>
do uwierzytelniania dostawcy pamięci podręcznej zasobów.
Istnieje wiele powodów, dla których autoryzacja może się nie powieść.
Jeśli używasz kontenera usługi Azure Storage, <sas>
parametr powinien zawierać tylko token SAS bez żadnego innego formatowania parametrów żądania. Na przykład:
x-azurl,https://mystorageaccount.blob.core.windows.net/mystoragecontainer,sasvaluehere,readwrite
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą generowania tokenów SAS. Upewnij się, że wygenerowane uprawnienia do odczytu i zapisu tokenu są zgodne z wymaganym przypadkiem użycia.
Jeśli używasz innego dostawcy, może być konieczne poprawne sformatowanie parametrów żądania. Na przykład prefiks nazwy parametru przed wartością tokenu.
x-azurl,https://contoso.com,authorization=tokenvaluehere,readwrite
.
Kroki umożliwiające rozwiązanie problemu:
1 — Sprawdź, czy token autoryzacji nie wygasł
2 — Sprawdź, czy token autoryzacji ma odpowiednie uprawnienia do kontenera
3 — Sprawdź, czy wartość tokenu autoryzacji jest poprawna
4 — Sprawdź, czy format tokenu autoryzacji jest zgodny z oczekiwanym formatem dostawcy.
Otrzymuję komunikat o błędzie "Nie można pobrać z zestawu dublowania"
Ten problem występuje, gdy konfiguracja buforowania zasobów zawiera x-block-origin
wartość .
Niepowodzenie przywracania zasobu z dowolnej skonfigurowanej pamięci podręcznej do niepowodzeń kompilacji pakietu przy użyciu x-block-origin
zmian. Zapobieganie potencjalnie niepożądanemu dostępowi do źródeł zewnętrznych.
Kroki umożliwiające rozwiązanie problemu:
1 — Sprawdź, czy sieć ma dostęp do źródła zasobów
2 — Sprawdź, czy żądany zasób istnieje w co najmniej jednej ze skonfigurowanych pamięci podręcznych zasobów. Jeśli pakiet nie istnieje, istnieją dwie metody rozwiązania problemu:
- Tymczasowe
x-block-origin
wyłączenie, aby umożliwić programowi vcpkg pobranie elementu zawartości i przekazanie go do skonfigurowanej pamięci podręcznej zasobów. - Ręczne przekazywanie zasobu do jednej ze skonfigurowanych pamięci podręcznych zasobów.
3 — Sprawdź, czy pamięci podręczne zasobów są prawidłowo skonfigurowane, wykonaj kroki opisane w artykule Artefakty nie są przekazywane ani przywracane z pamięci podręcznej zasobów.
Problem nie znajduje się tutaj
Jeśli problem nie jest wymieniony tutaj, odwiedź nasze repozytorium , aby utworzyć nowy problem.