Mam kilka dużych plików na moim koncie hostowanym w systemie Linux, które muszę przesłać na konto S3. Nie chcę ich najpierw pobierać, a następnie przesyłać do S3.
Czy jest jakiś sposób, aby „przesłać” go za pomocą wiersza poleceń systemu Linux? Czy mogę uzyskać do niego dostęp za pośrednictwem strony internetowej współpracującej z Lynx?
źródło
Amazon udostępnia teraz także własne narzędzia CLI.
Od http://aws.amazon.com/cli/
Dokumentacja poleceń związanych z plikami znajduje się tutaj .
źródło
Jeśli nie możesz (być może korzystasz z hosta współdzielonego) lub nie chcesz instalować dodatkowych narzędzi, możesz po prostu użyć bash, curl i openssl.
http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash
Zauważ, że zmodyfikowałem ten skrypt z tego w powyższym linku. Dodałem
-L
opcję, ponieważ AWS może wstawić tam przekierowanie.-L
Opcja nastąpi przekierowanie do Ciebie.Jeszcze jedno zastrzeżenie. To nie zadziała dla plików większych niż 5 GB. Wymagają one przesyłania wielu części, co wymagałoby bardziej złożonego skryptu.
źródło
Skrypt powłoki zgodny z POSIX, który wymaga tylko openssl, curl i sed; obsługa AWS Signature Version 4, która jest wymagana dla regionu
eu-central-1
(Frankfurt) i zalecana dla pozostałych:https://gist.github.com/vszakats/2917d28a951844ab80b1
Zauważ, że skrypt włączy serwer
Domyślnie szyfrowanie AES256.
źródło
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256
Alternatywnie możesz spróbować https://github.com/minio/mc
mc
zapewnia minimalne narzędzia do pracy z systemami pamięci masowej i systemami plików zgodnymi z Amazon S3. Posiada funkcje takie jak wznawianie przesyłania, pasek postępu, kopiowanie równoległe.mc
jest napisany w Golang i wydany na licencji Apache v2.źródło
Odkryłem, że powiązania AWS Pythona w
boto
pakiecie (pip install boto
) są pomocne przy przesyłaniu danych do S3.Można wywołać następujący skrypt:
python script_name.py "sub_bucket_name" "*.zip"
gdziesub_bucket_name
wskazuje nazwę katalogu, w którym pliki powinny być przechowywane w S3, i*.zip
jest ścieżką globalną wskazującą jeden lub więcej plików do przesłania:źródło