2016-08-23 29 views
5

Potrzebuję załadować duży plik do wiadra aws s3. co 10 minut mój kod kasuje stary plik z katalogu źródłowego i generuje nowy plik. Rozmiar pliku wynosi około 500 MB. Teraz użyłem metody s3.putObject() do przesyłania każdego pliku po jego utworzeniu. słyszałem również o synchronizacji zss s3. jego przybycie z aws-cli. służy do przesyłania plików do s3.aws s3 putObject vs sync

Użyłem aws-sdk dla node.js dla s3 upload. aws-sdk dla node.js nie zawiera metody synchronizacji s3. czy s3-sync jest lepsza od metody s3.putObject() ?. potrzebuję szybszego przesyłania.

Odpowiedz

1

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ć:

+0

i wdrożyłem mój kod na aws-lambda. Polecenie sdk lub aws-cli jest lepsze dla lambda? –

+0

jeśli twój kod działa na lambda, węzeł js sdk jest prawidłową dobrą opcją –

+0

dzięki federic. –

Powiązane problemy