Zawsze jest więcej niż sposób, aby na rzeczy, tak aby przesłać plik do wiadra S3 można:
- użycie AWS CLI i uruchomić
aws s3 cp ...
- użytku AWS CLI i uruchomić
aws s3api put-object ...
- użyj aws SDK (twój wybrany język)
możesz również użyć metody sync
, ale dla pojedynczego pliku nie ma potrzeby synchronizowania całego katalogu i generowania sprzymierzeńcy, gdy szukają lepszej wydajności, lepiej uruchomić wiele instancji cp
, aby skorzystać z wielowątkowości w stosunku do pojedynczych zsynchronizowanych.
zasadniczo wszystkie te metody są opakowaniem dla wywołań interfejsu API aws S3. Od amazon doc
Wykonywanie połączeń REST API bezpośrednio z Twojego kodu może być uciążliwe. Wymaga to napisania niezbędnego kodu do obliczenia ważnego podpisu w celu uwierzytelnienia twoich wniosków. Zamiast tego zalecamy następujące alternatywy:
- Pakiety SDK AWS służą do wysyłania żądań (zobacz przykładowy kod i biblioteki). Ta opcja nie wymaga pisania kodu w celu obliczenia podpisu w celu uwierzytelnienia żądania, ponieważ klienci pakietu SDK uwierzytelniają żądania za pomocą dostarczonych kluczy dostępu. Jeśli nie masz dobrego powodu, aby tego nie robić, zawsze używaj pakietów SDK AWS.
- Używanie interfejsu AWS CLI do wykonywania wywołań API Amazon S3. Informacje na temat konfigurowania interfejsu AWS CLI i przykładowych poleceń Amazon S3 można znaleźć w następujących tematach: Konfigurowanie interfejsu AWS CLI w podręczniku dla programistów usługi Amazon Simple Storage Service. Używanie Amazon S3 z interfejsem wiersza poleceń AWS w Przewodniku użytkownika Interfejsu wiersza poleceń AWS.
, więc Amazon poleciłby skorzystać z SDK. Podsumowując, myślę, że to naprawdę zależy od tego, co najbardziej Ci odpowiada i jak zintegrujesz ten fragment kodu z resztą programu. W przypadku jednorazowej akcji zawsze chodzę do CLI.
Jeśli chodzi o wydajność, korzystanie z jednej lub drugiej strony nie będzie miało znaczenia, ponieważ po prostu są one opakowywane do wywołania interfejsu API AWS. Aby zoptymalizować transfer, powinieneś spojrzeć na numer aws s3 transfer acceleration i sprawdzić, czy możesz go włączyć:
i wdrożyłem mój kod na aws-lambda. Polecenie sdk lub aws-cli jest lepsze dla lambda? –
jeśli twój kod działa na lambda, węzeł js sdk jest prawidłową dobrą opcją –
dzięki federic. –