Jak przesyłać i udostępniać pliki z terminala Linux za pomocą Transfer.sh

Obecnie udostępnianie plików jest łatwiejsze niż kiedykolwiek. Pomiędzy Dropbox, Google Drive, OneDrive itp. Przenoszenie rzeczy z jednego miejsca do drugiego działa dość szybko – chyba że używasz terminala. Jeśli korzystasz z terminala, prawdopodobnie nadal otrzymujesz pliki przez SFTP lub coś równie archaicznego. Przedstawiamy TransferSH: narzędzie do udostępniania plików zaprojektowane specjalnie do przesyłania i udostępniania plików z terminala Linux.

OSTRZEŻENIE SPOILERA: Przewiń w dół i obejrzyj samouczek wideo na końcu tego artykułu.

Korzystanie z Transfer.sh ręcznie

Transfer.sh ma interfejs sieciowy i możesz przesyłać i udostępniać pliki z przeglądarki. Usługa działa również z wierszem poleceń, więc możesz udostępniać plik bezpośrednio przez terminal. Aby udostępniać pliki z terminala Linux za pomocą Transfer.sh, potrzebujesz Curl.

Ubuntu

sudo apt install curl

Debian

sudo apt-get install curl

Arch Linux

sudo pacman -S curl

Fedora

sudo dnf install curl

OpenSUSE

sudo zypper install curl

Inne systemy Linux

Użytkownicy spoza głównego nurtu dystrybucji Linuksa nie powinni mieć większych problemów ze znalezieniem programu Curl, ze względu na jego szeroką dostępność. Aby go zdobyć, po prostu otwórz swojego menedżera pakietów, wyszukaj „curl” i zainstaluj go! Jeśli z jakiegoś powodu nie jest dla Ciebie dostępny, Pobierz to tutaj.

Przesyłanie za pomocą funkcji Curl

Interakcja z transfer.sh przy użyciu curl wymaga dość długiego polecenia. Oto jak to działa.

Najpierw znajdź plik w systemie plików do przesłania. Użyj „znajdź” lub „zlokalizuj” w swoim terminalu (lub przejdź do menedżera plików, znajdź plik i zanotuj, gdzie on się znajduje). Po zanotowaniu lokalizacji pliku, który próbujesz przesłać, użyj polecenia cd, aby tam przejść. W tym przykładzie załadujemy plik „test.mp3” z folderu Dokumenty.

cd ~/Documents

Terminal znajduje się teraz w katalogu, w którym znajduje się test.mp3. Teraz użyj tego polecenia „formuła”, aby przesłać plik. Oto pierwsza część polecenia:

 curl --upload-file ./test.mp3

Następnym krokiem jest utworzenie adresu URL do użycia w pliku transfer.sh. Zapamiętaj nazwę pliku (a także rozszerzenie) i zapisz ją w ten sposób:

https://transfer.sh/test.mp3

Wynik końcowy powinien wyglądać następująco;

curl --upload-file ./test.mp3 https://transfer.sh/test.mp3

Curl wyśle ​​plik do Transfer.sh i zwróci adres URL. Otwórz adres URL, aby pobrać plik, lub wyślij go komuś, komu chcesz udostępnić plik.

Transfer.sh Alias ​​terminala

Ręczne przesyłanie za pomocą Curl może wyprowadzić Cię z trudnej sytuacji, ale nie jest idealne. Nic nie wskazuje na to, że przesyłanie działa, jaka część pliku została przesłana, a zapamiętywanie zdania po prostu o przesłaniu czegoś jest dość nużące. Z tego powodu deweloper stworzył alias Bash. Ten alias basha, po skonfigurowaniu, da użytkownikowi możliwość łatwego przesyłania plików i folderów za pomocą jednego słowa.

Aby to skonfigurować, otwórz plik BashRC. Zrozum, że plik BashRC każdego użytkownika musi zostać zmodyfikowany, aby używać tego aliasu.

nano ~/.bashrc

Używając Nano, przejdź na sam koniec pliku. Następnie wklej kod Transfer SH Alias. Pamiętaj, aby wkleić każdy fragment kodu, w przeciwnym razie alias bash nie zadziała.

Uwaga: wklejanie za pomocą Nano ze schowka można wykonać za pomocą CTRL + SHIFT + V.

transfer() {
 # check arguments
 if [ $# -eq 0 ];
 then
 echo "No arguments specified. Usage:necho transfer /tmp/test.mdncat /tmp/test.md | transfer test.md"
 return 1
 fi

# get temporarily filename, output is written to this file show progress can be showed
 tmpfile=$( mktemp -t transferXXX )

# upload stdin or file
 file=$1

if tty -s;
 then
 basefile=$(basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g')

if [ ! -e $file ];
 then
 echo "File $file doesn't exists."
 return 1
 fi

if [ -d $file ];
 then
 # zip directory and transfer
 zipfile=$( mktemp -t transferXXX.zip )
 cd $(dirname $file) && zip -r -q - $(basename $file) >> $zipfile
 curl --progress-bar --upload-file "$zipfile" "https://transfer.sh/$basefile.zip" >> $tmpfile
 rm -f $zipfile
 else
 # transfer file
 curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >> $tmpfile
 fi
 else
 # transfer pipe
 curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >> $tmpfile
 fi

# cat output link
 cat $tmpfile
 echo ""
 # cleanup
 rm -f $tmpfile
 }

Po wklejeniu dużej ilości kodu do pliku ~ / .bashrc, zapisz nano za pomocą CTRL + O. Uruchom ponownie komputer, aby zmiany zaczęły obowiązywać.

Przesyłanie przy użyciu aliasu terminala

Przesyłanie za pomocą aliasu TransferSH jest znacznie łatwiejsze niż ręczne używanie Curl. W tym przykładzie ponownie użyjemy test.mp3 i folderu Dokumenty.

Krok 1: przejdź do terminala do miejsca, w którym znajduje się plik / folder, który chcesz przesłać.

cd ~/Documents

Krok 2: Rozpocznij proces przesyłania.

transfer test.mp3

lub dla folderu wykonaj:

transfer file_folder

Krok 3: Poczekaj, aż terminal załaduje plik. Na ekranie pojawi się pasek postępu, a po zakończeniu wypluje link do pobrania.

Pobieranie z Curl

Curl to coś więcej niż tylko narzędzie do przesyłania. To także narzędzie do pobierania. Aby pobrać plik przesłany przez transfer.sh, postępuj zgodnie z tymi instrukcjami.

Najpierw skopiuj łącze pobierania, które daje narzędzie do przesyłania, i zachowaj je w schowku. Następnie zrób to, aby pobrać:

curl https://transfer.sh/vN79X/test.zip > test.zip

Pamiętaj, aby ponownie wpisać nazwę pliku po> do tej w linku pobierania. To właśnie curl nazywa pobieranie na twoim komputerze. Zmiana nazwy jest możliwa, ale nie zalecamy tego.

Pobieranie za pomocą Wget

Pomimo tego, jak popularny jest Curl, niektórzy ludzie odmawiają korzystania z niego, ponieważ wydaje się to skomplikowane, i zamiast tego decydują się również na pobranie Wget. Ma to sens, ponieważ Wget jest bardzo prosty. Podobnie jak narzędzie Curl, Wget może również łatwo pobrać linki Transfer SH. Oto jak:

wget https://transfer.sh/vN79X/test.zip

Wniosek

Nie zdarza się to często, ale czasami podczas pracy na serwerze możesz potrzebować szybkiego dostępu do pliku z innego komputera. Konfiguracja SSH, logowanie do FTP itp. Są uciążliwe. Dlatego TransferSH jest tak przydatnym narzędziem. To sprawia, że ​​pobieranie plików o dowolnym rozmiarze bezpośrednio z wiersza poleceń jest łatwiejsze niż kiedykolwiek.