Jak zamontować kontener object storage z NSIS jako system plików na lokalnym komputerze z systemem Windows?
W tym artykule opisano, jak skonfigurować bezpośredni dostęp do kontenerów object storage z chmury NSIS w oknie This PC na lokalnym komputerze z systemem Windows. Takie kontenery będą montowane na przykład jako dyski sieciowe:
Montaż zostanie skonfigurowany przy użyciu konta, które ma uprawnienia administracyjne uzyskane za pomocą UAC (User Account Control). Po tym procesie kontener powinien być również dostępny na kontach, które nie mają takich uprawnień administracyjnych.
Wymagania wstępne
Nr 1 Konto
Potrzebne jest konto hostingowe NSIS z dostępem do interfejsu Horizon https://horizon.cloudferro.com.
Nr 2. Kontener do przechowywania obiektów
Potrzebny jest co najmniej jeden kontener object storage w chmurze NSIS. Jeśli jeszcze go nie masz, postępuj zgodnie z tym artykułem: Jak korzystać z Object Storage w NSIS
Nr 3. Generowane poświadczenia EC2
Musisz wygenerować poświadczenia EC2 dla swojego konta.
Poniższy artykuł zawiera informacje, jak to zrobić w systemie Linux: Jak wygenerować poświadczenia EC2 i zarządzać nimi na NSIS Cloud.
Jeśli zamiast tego chcesz to zrobić w systemie Windows, musisz najpierw zainstalować klienta OpenStack CLI. Sprawdź jeden z tych artykułów, aby dowiedzieć się więcej.
Po zainstalowaniu klienta OpenStack CLI w systemie Windows, użyj go do wykonania przepływu pracy z artykułu Jak wygenerować poświadczenia EC2 i zarządzać nimi na NSIS Cloud - odpowiednio dostosuj polecenia tam znalezione.
Nr 4 Lokalny komputer z systemem Microsoft Windows
Potrzebny jest lokalny komputer z systemem Microsoft Windows. Ten artykuł został napisany dla systemu Windows 10 Pro.
Musisz mieć dostęp do konta, które może zostać podniesione do uprawnień administracyjnych poprzez Kontrolę konta użytkownika (UAC). Takie konto powinno być tworzone domyślnie podczas standardowej instalacji systemu Microsoft Windows.
Inne konta, w tym konta o nazwie Administrator znajdujące się w systemie Windows Server, są poza zakresem tego artykułu.
Co zostanie omówione w artykule
Montowanie kontenera object storage jako dysku Windows przy użyciu oprogramowania open source
Testowanie połączenia z kontenera
Dostosowywanie opcji –dir-cache-time
Ustawienie automatycznego montażu dla kontenera
Usuwanie oprogramowania używanego do montażu
Narzędzia programowe użyte w tym artykule: Rclone, WinFSP i NSSM
Rclone ma wiele funkcji, takich jak zarządzanie plikami w chmurze i synchronizacja między systemami plików. W tym artykule użyjemy polecenia rclone mount do zamontowania object storage na maszynie wirtualnej z systemem Windows.
WinFSP umożliwia dostęp do niestandardowych systemów plików w systemie Microsoft Windows. W tym przepływie pracy pozwoli to Rclone na zamontowanie magazynu S3.
NSSM jest menedżerem usług. Tutaj będzie on używany do konfigurowania automatycznego montowania magazynu obiektów. Będzie on uruchamiany z wiersza poleceń https://nssm.cc/commands.
Jak korzystać z pliku konfiguracyjnego Rclone
Domyślnie Rclone tworzy i używa pliku konfiguracyjnego w folderze .config\rclone w katalogu domowym bieżącego użytkownika.
Aby usprawnić proces konfiguracji, należy ręcznie utworzyć plik konfiguracyjny o nazwie rclone.conf w folderze, w którym przechowywany jest plik binarny Rclone. Tam wkleisz kod dostarczony w tym artykule. Za każdym razem, gdy Rclone zostanie uruchomiony, lokalizacja tego pliku zostanie przekazana do niego w parametrze.
Ostrzeżenie
Wszyscy użytkownicy komputera będą mogli uzyskać dostęp do pliku konfiguracyjnego i modyfikować go. Zawiera on dane logowania zapisane w postaci zwykłego tekstu.
Krok 1 Pobierz i zainstaluj odpowiednie oprogramowanie
Informacja
Pomiń ten krok, jeśli te narzędzia programowe są już skonfigurowane.
Pobierz i rozpakuj Rclone
Uruchom PowerShell normalnie, nie jako administrator.
Użyj następujących poleceń, aby
utworzyć katalog, w którym będzie przechowywany Rclone i
nawigować do niego.
mkdir C:\rclone; cd C:\rclone
Nie zamykając programu PowerShell, otwórz przeglądarkę internetową na maszynie wirtualnej. Przejdź do następującej strony internetowej: https://rclone.org/downloads. Powinna ona zawierać tabelę z linkami do jej różnych wersji:
Pobierz wersję Rclone dla platformy Intel/AMD - 64 Bit (dla systemu operacyjnego Windows).
Pobierz archiwum zip. W przeglądarce Microsoft Edge powinno ono wyglądać następująco:
Wejdź do tego archiwum zip, powinno ono zawierać jeden katalog. Kliknij dwukrotnie, aby do niego wejść. Jego zawartość powinna wyglądać następująco:
Skopiuj zawartość tego katalogu do folderu C:\rclone, który wcześniej utworzyłeś za pomocą PowerShell.
Pobierz i zainstaluj WinFsp
Wróć do przeglądarki internetowej i przejdź na stronę https://winfsp.dev/rel/. Kliknij Pobierz instalator WinFsp:
Uruchom pobrany instalator. Proces instalacji będzie podobny do instalacji innych programów Windows. Krok o nazwie Custom Setup będzie jednak wymagał dokonania wyboru:
Pozostaw wartości domyślne nienaruszone, aby zainstalować tylko sekcję Core i kliknij Next. Zakończ instalację.
Pobierz i rozpakuj NSSM
Przejdź do strony https://nssm.cc/download w przeglądarce.
Kliknij łącze w sekcji Najnowsze informacje:
Należy pobrać plik zip. Powinien on zawierać jeden folder. Zawartość tego folderu powinna wyglądać następująco:
Przejdź do folderu win64. Powinien on zawierać jeden plik wykonywalny o nazwie nssm:
Skopiuj ten plik do C:\rclone.
Krok 2: Wprowadź dane połączenia
Otwórz folder C:\rclone za pomocą menedżera plików Windows. Plik rclone.conf w tym folderze będzie używany do przechowywania danych połączenia do przechowywania obiektów. Jeśli plik ten nie istnieje, należy go utworzyć. Otwórz go za pomocą Notatnika.
Każda sekcja zawierająca dane połączenia z object storage zaczyna się od wiersza zawierającego jej nazwę zapisaną w nawiasach kwadratowych. Poniżej znajdują się wiersze zawierające różne parametry używane do łączenia się z danym object storage. Sekcje będą miały dostęp do wszystkich kontenerów object storage z tą samą parą kluczy dostępu i tajnych. Oznacza to, że nie trzeba tworzyć oddzielnych sekcji dla różnych kontenerów przy użyciu tych samych par poświadczeń.
Dodaj następującą sekcję na końcu tego pliku:
[remote-config]
type = s3
provider = Other
access_key_id = 1234
secret_access_key = 4321
endpoint = s3.waw4-1.cloudferro.com
W powyższym bloku zastąp 1234 i 4321 odpowiednio kluczem dostępu i tajnym kluczem, które uzyskałeś podczas wykonywania warunku wstępnego nr 3.
Ten kod utworzy połączenie o nazwie remote-config. Jeśli chcesz użyć innej nazwy dla połączenia niż remote-config, zastąp ją w powyższym kodzie. Nazwa ta nie musi być taka sama jak nazwa jednego z kontenerów.
Jeśli chcesz uzyskać dostęp do innych kontenerów Object Storage przy użyciu różnych poświadczeń na komputerze, utwórz oddzielną sekcję o innej nazwie, jak opisano powyżej dla każdej pary kluczy.
Krok 3: Przeprowadzenie montażu testowego
W tym kroku zostanie przeprowadzony testowy montaż, aby upewnić się, że konfiguracja przebiegła pomyślnie i rclone jest w stanie zamontować kontener object storage.
Wróć do programu PowerShell uruchomionego w kroku 1. Jeśli go zamknąłeś, otwórz go ponownie jako zwykły użytkownik, a nie jako Administrator, a następnie przejdź do katalogu C:rclone. Wykonaj poniższe polecenie. Zastąp remote-config nazwą właśnie skonfigurowanego połączenia.
.\rclone.exe --config "C:\rclone\rclone.conf" lsd remote-config:
Powinieneś zobaczyć na przykład listę kontenerów object storage powiązanych z Twoimi poświadczeniami:
-1 2023-01-18 12:53:14 -1 second-test-container
-1 2023-01-16 13:23:03 -1 test-container
Powtórz ten proces dla każdej pary kluczy dodanej w kroku 2.
Aby przetestować montowanie jednego z kontenerów, wykonaj poniższe polecenie bez opuszczania PowerShell. Zastąp remote-config nazwą połączenia, test-container nazwą containera i E: literą dysku, pod którą chcesz go zamontować.
.\rclone.exe mount --config "C:\rclone\rclone.conf" --network-mode remote-config:test-container E: --vfs-cache-mode full --dir-cache-time 1m0s
Informacja
Jeśli przez pomyłkę wprowadzisz nazwę nieistniejącego kontenera object storage, polecenie spróbuje go utworzyć i zamontować, z zastrzeżeniem innych potencjalnych ograniczeń (brakujące uprawnienia itp.).
Opcja w tym poleceniu –vfs-cache-mode full powinna sprawić, że mount będzie obsługiwał standardowe operacje systemu plików.
Opcja –dir-cache-time 1m0s zostanie wyjaśniona w następnym kroku.
Opcja –network-mode jest opcjonalna. Została dodana, aby zamontowany kontener był wizualnie reprezentowany jako dysk sieciowy w oknie This PC. Usunięcie tej opcji spowoduje, że kontener będzie reprezentowany jako normalny dysk i może rozwiązać niektóre problemy z montowaniem.
Powinieneś teraz otrzymać następujące dane wyjściowe:
The service rclone has been started.
Przejdź do okna This PC. Powinieneś tam zobaczyć zamontowany kontener:
Wprowadź go i powinieneś zobaczyć jego zawartość:
Aby zatrzymać montaż testowy, naciśnij CTRL+C w PowerShell. Powinieneś otrzymać następujące dane wyjściowe:
The service rclone has been stopped.
Kontener nie powinien być już widoczny w oknie This PC.
Jeśli naciśnięcie CTRL+C nie spowoduje zatrzymania montażu testowego, upewnij się, że okno PowerShell jest skoncentrowane, klikając je lewym przyciskiem myszy. Naciśnij literę na klawiaturze, na przykład A, i spróbuj ponownie nacisnąć CTRL+C.
Takie testy można przeprowadzić dla wszystkich kontenerów object storage, które mają być używane na komputerze.
Nie zamykaj jeszcze programu PowerShell.
Krok 4: Dostosowanie opcji –dir-cache-time
W kroku 3 wykonano testowe zamontowanie kontenera object storage przy użyciu następującego polecenia:
.\rclone.exe mount --network-mode remote-config:test-container E: --vfs-cache-mode full --dir-cache-time 1m0s
Dostosowanie opcji –dir-cache-time jest ważne, zwłaszcza jeśli zamierzasz używać kontenera na wielu maszynach fizycznych i/lub wirtualnych. Obejmuje to korzystanie z kontenera na maszynie wirtualnej i pulpicie nawigacyjnym Horizon. Może się okazać, że zmiany wprowadzone w bucket na innym komputerze nie pojawią się na maszynie wirtualnej z systemem Windows. Użycie opcji Refresh w Eksploratorze plików Windows może również nie zsynchronizować tej zmiany.
Dzieje się tak, ponieważ opcja Refresh w tym przypadku nie pobiera zmian bezpośrednio z kontenera, ale z pamięci podręcznej. Jeśli opcja –dir-cache-time nie zostanie określona podczas montowania, pamięć podręczna jest automatycznie synchronizowana co 5 minut. Dlatego, jeśli na przykład zmienisz nazwę folderu na innym urządzeniu, będziesz mógł pobrać tę zmianę po około 5 minutach.
Określenie tej opcji zastępuje domyślną wartość 5 minut. W tym przykładzie automatyczne odświeżanie pamięci podręcznej zostało ustawione na 1 minutę (1m0s). Możliwe jest również ustawienie tej wartości na przykład na 1 sekundę (0m1s). Możesz zastąpić 1m0s w powyższym poleceniu wybraną przez siebie wartością.
Możesz teraz wykonać kilka testowych montaży, jak wyjaśniono w kroku 3 i znaleźć wartość –dir-cache-time, która Ci odpowiada.
Krok 5: Konfiguracja automatycznego montowania kontenera
Otwórz PowerShell jako Administrator i wykonaj następujące polecenie, aby przejść do katalogu C:\rclone:
cd C:\rclone
Teraz uruchom instalator usługi NSSM za pomocą następującego polecenia:
.\nssm.exe install
Powinno pojawić się następujące okno:
Kliknij przycisk … obok pola tekstowego Path:.
Wybierz lokalizację Rclone. Jeśli postępowałeś zgodnie z tym samouczkiem, ta lokalizacja jest następująca:
C:\rclone\rclone.exe
W polu tekstowym Arguments wprowadź następujący kod. Zastąp remote-config nazwą połączenia, test-container nazwą containera, E: literą dysku, pod którą chcesz go zamontować, a 1m0s wartością wybraną w kroku 3.
mount --config "C:\rclone\rclone.conf" --network-mode remote-config:test-container E: --vfs-cache-mode full --dir-cache-time 1m0s
Ostrzeżenie
Upewnij się, że nic nie jest zamontowane pod wybraną literą dysku.
W polu tekstowym Service name: wprowadź nazwę usługi montażu. Może ona być inna niż nazwa połączenia ustawiona w kroku 1 i nazwa containera S3. W tym przykładzie użyta zostanie nazwa mounting-service.
Przejdź do zakładki Log on. Upewnij się, że wybrana jest opcja Lokalne konto systemowe.
Kliknij przycisk Install service. Powinien pojawić się następujący komunikat:
Uruchom ponownie komputer i sprawdź, czy dysk zostanie automatycznie zamontowany w oknie This PC. Jeśli tak, usługa działa zgodnie z przeznaczeniem.
Teraz powinieneś być w stanie pracować ze swoimi plikami.
Dodaj oddzielną usługę o innej nazwie, jak opisano powyżej, dla każdego kontenera object storage, który ma być automatycznie montowany na komputerze. Zapamiętaj lub zapisz gdzieś nazwy tych usług, aby móc je łatwo zatrzymać i usunąć w przyszłości, jeśli zajdzie taka potrzeba.
Jeśli nie możesz usunąć plików lub folderów z object storage, możesz usunąć je z opcji Object Store -> Containers na pulpicie nawigacyjnym Horizon:
Usunięcie oprogramowania odpowiedzialnego za automatyczne montowanie object storage
Jeśli nie chcesz już uzyskiwać dostępu do kontenerów object storage z NSIS na określonym komputerze, możesz usunąć odpowiednią konfigurację i oprogramowanie.
Cała procedura zostanie omówiona w tej sekcji:
Usunięcie automatycznego montażu utworzonego w NSSM
Usunięcie zapisanego magazynu obiektów w Rclone
Odinstalowywanie WinFsp
Usunięcie folderu C:\rclone zawierającego Rclone i NSSM
Otwórz PowerShell jako administrator. Przejdź do katalogu C:rclone, wykonując następujące polecenie:
cd C:\rclone
Aby sprawdzić stan usługi automatycznego montowania, wykonaj następujące polecenie. Zastąp w nim mounting-service nazwą ustawionej wcześniej usługi automatycznego montowania.
.\nssm.exe status mounting-service
Powinieneś otrzymać następujące dane wyjściowe:
SERVICE_RUNNING
Aby zatrzymać automatyczne montowanie kontenera, wykonaj poniższe polecenie. Zastąp mounting-service jak poprzednio.
.\nssm.exe stop mounting-service
Usuń usługę, wykonując poniższe polecenie. Zastąp mounting-service jak poprzednio.
.\nssm.exe remove mounting-service confirm
Powinieneś teraz otrzymać wynik podobny do tego:
Service "mounting-service" removed successfully.
Jeśli używałeś tej instalacji rclone do montowania, na przykład, innych kontenerów object storage z NSIS, usuń ich usługi za pomocą NSSM w ten sam sposób.
Usuń utworzony folder C:\rclone.
Kliknij menu Start i wpisz panel sterowania.
Powinieneś teraz zobaczyć następujący wynik wyszukiwania:
Kliknij go, aby przejść do Panelu sterowania.
Upewnij się, że menu rozwijane Wyświetl według jest ustawione na Kategoria.
W sekcji Programy wybierz Odinstaluj program.
Na wyświetlonej liście znajdź pozycję WinFsp:
Kliknij prawym przyciskiem myszy i wybierz Uninstall:
Pojawi się teraz następujące pytanie:
Kliknij przycisk Tak. Powinno pojawić się następujące okno:
Zamknij wszystkie otwarte programy i okna Eksploratora plików (na przykład okno This PC lub Documents). Upewnij się, że opcja Automatycznie zamknij aplikacje i spróbuj uruchomić je ponownie po zakończeniu instalacji jest zaznaczona i kliknij przycisk OK.
Zostanie wyświetlone onko o ponowne uruchomienie komputera:
Upewnij się, że ponowne uruchomienie jest bezpieczne, w tym, że
zapisał swoją pracę i
zamknął programy.
Następnie kliknij przycisk Tak w oknie wyświetlonym powyżej.
Komputer powinien teraz zostać ponownie uruchomiony.
Po ponownym zalogowaniu otwórz okno This PC.
Wprowadź dysk C:.
Usuń znajdujący się w nim folder rclone - mogą być do tego potrzebne uprawnienia administracyjne.
Rclone i inne oprogramowanie używane do montowania object storage powinno teraz zostać usunięte.
Co robić dalej
Kontenery object storage w chmurze NSIS można montować zarówno na maszynach fizycznych, jak i wirtualnych z systemami Windows i Linux. Aby zamontować kontener Object Storage na innej platformie, postępuj zgodnie z jednym z poniższych artykułów:
Jak zamontować kontener Object Storage jako system plików na VM z Windows w NSIS Cloud
Jak zamontować kontener object storage jako system plików w Linuksie przy użyciu s3fs na NSIS Cloud