Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.