Jak używać OneDrive w wierszu poleceń? W jaki sposób połączyć się z OneDrive używając PowerShell? Jak pod montować OneDrive jako dysk w Windows? Czy można synchronizować plik z OneDrive używając skryptów?
Istniej wiele sposobów połączenia się z usługą OneDrive z poziomu wiersza polecń/PowerShell np używając modułu. Dzisiaj przedstawie Wam jednak dużo ciekawsze rozwiązanie, aplikacje Rclone
Rclone to program wiersza poleceń do zarządzania plikami w chmurze. Jest to niezwykle bogata w funkcje alternatywa dla interfejsów dostawców usług w chmurze. Tak, dostawców ponieważ obecnie obsługuje ponad 70 rozwiązań od OneDrive, GoogleDrive, Azure, AWS przez OwnCloud, OVH, Mega co czyni go naprawdę uniwersalnym narzędziem.
Rclone ma potężne odpowiedniki w chmurze poleceń uniksowych: rsync, cp, mv, mount, ls, ncdu, tree, rm i cat. Mamy tez dobrzez znane odpowiedniki Windowsowego Robocopy, czy PowerShellowych poleceń. Składnia Rclone obejmuje obsługę potoków powłoki i ochronę przed uruchomieniem tzw –dry-run. Można go używać w wierszu poleceń, skryptach czy poprzez api.
Aplikacja to tak naprawdę jeden plik wykonywalny (możemy go umieścić gdzie chcemy) oraz zapisane ustawienia połączenia z wybranymi rozwiązaniami chmurowymi. W przypadku Windows plik konfiguracyjny domyślnie znajduje się w lokalizacji:
%APPDATA%/rclone/rclone.conf
Połączenia nazywamy, możemy więc mieć ich zdefiniowanych kilka, możemy je również zaszyfrować wtedy w przypadku ich wywołania będziemy musieli podać hasło.
Zacznijmy od początku, pobieramy odpowiednią wersje binarki ze strony i po rozpakowaniu umieszczamy ją w katalogu, w naszym przypadku będzie to:
C:\data\rclone
W naszym przykładzie zdefiniujemy połączenie z usługa OneDrive Bussines z pakietu Microsoft 365.
W tym celu otwieramy Terminal jako administrator i wykonujemy konfiguracje połączenia z naszą usługą.
.\rclone.exe config
Wybieramy n aby zdefiniować nowe połączenie z usługą, zaczynamy od wprowadzenia jego nazwy:
Następnie wskazujemy usługę jaką chcemy użyć w naszym połączeniu: OneDrive czyli 31
W naszym przykładzie ClientID pozostawimy puste:
OAuth Client Secret również nie będzie przez nas wprowadzane
Wybieramy typ usługi, raczej będzie to dla wszystkich 1
pomijamy też definicje zaawansowanych opcji:
Następnie z użyciem domyślnej przeglądarki dokonamy autentykacji w usłudze OneDrive i pozwolimy aplikacji Rcloud na jej użycie:
otworzy się okno gdzie wprowadzamy swoje poświadczenia (do konta OneDrive):
wracamy do naszego Terminala i zgodnie z uprawnieniami jakie posiada nasze konto Microsoft 365 wybieramy typ usługi, w naszym wypadku 1
Wybieramy konfiguracje która jest dostępna (zazwyczaj jest tylko jedna):
Pozostaje już tylko potwierdzić naszą konfiguracje:
Mamy zdefiniowane połączenie o nazwie sprawdzoneit
W wersji produkcyjnej proponuje ustawić hasło dla konfiguracji, my jednak zakończymy konfiguracje wybierając q
Spróbujmy skopiować dane z dysku lokalnego do naszego OneDrive. W usłudze chmurowej utworzyliśmy oddzielny katalog o nazwie rclone
i chcemy skopiować do niego lokalny plik sample.zip który znajduje się w lokalizacji
c:\data
W tym celu użyjemy polecenia:
.\rclone.exe copy "C:\data\sample.zip" sprawdzoneit:"/rclone"
nie użyliśmy parametru postępu więc po krótkiej chwili oczekiwania (zależnie od rozmiaru pliku):
sprawdźmy więc naszego OneDrive czy plik rzeczywiście się tam znajduje:
Działa! Skoro mamy już proste kopiowanie za sobą czas zając się trochę ciekawszymi parametrami np sync
Sync pozwoli nam na synchronizowanie źródła i celu – np przy skryptach dotyczących kopii zapasowych. Poniżej przykładowy skrypt PowerShell synchronizujący zdefinowae w parametrach katalogi:
#rclone sync example
#sprawdzone.it
$source = "c:\backup"
$destination = "/rclone/backup"
c:\data\rclone\rclone.exe sync $source sprawdzoneit:$destination
Rozwiązań i parametrów jest sporo – dokumentacja jest dobra więc nie powinniście mieć problemu z użyciem. Pamiętajcie że możecie mieć kilka zdefiniowanych połączeń z różnymi usługami i równie prosto uzyskiwać do nich dostęp.
Rclone pozwala na coś jeszcze – montowanie naszego zdefiniowanego połączenia jako dysku systemowego. Jest to dość ciekawe rozwiązanie w porównaniu z oryginalnym klientem OneDrive ponieważ nie musimy pobierać całego dysku (1TB to nadal dużo) a dostęp do danych mamy praktycznie błyskawiczny.
Aby mapować dysk w chmurze z użyciem Rclone będziemy potrzebowali dwóch dodatkowych aplikacji – nie zrażajcie się są to tak naprawdę tylko dostawcy funkcji.
Przechodzimy na stronę WinFsp i instalujemy kolejno:
sshfs
nfs
winfsp
Po instalacji otwieramy ponownie nasz wiersz poleceń jako ZWYKŁY użytkownik np w Terminalu i wydajemy następujące polecenie:
.\rclone.exe --vfs-cache-mode writes mount sprawdzoneit: *
gdzie sprawdzoneit to nazwa zdefiniowanego przez nas połączenia a * oznacza dowolną wolną literę dysku w naszym systemie:
sprawdzamy czy dysk się pojawił:
Prawda że proste? A to dopiero początek dla naszych skryptów z użyciem OneDrive.
Jeżeli mój wpis Ci się spodobał, pomógł w pracy? Chcesz mnie wspierać? Postaw kawę! To dzięki waszemu wsparciu nie ma reklam! Poniżej kod QR do płatności który jest jednocześnie linkiem do PayPal