2016-08-23 5 views
5

Мне нужно загрузить большой файл в aws s3 bucket. каждые 10 минут мой код удаляет старый файл из исходного каталога и генерирует новый файл. Размер файла составляет около 500 МБ. Теперь я использовал метод s3.putObject() для загрузки каждого файла после создания. Я также слышал об aws s3 sync. его приход с aws-cli. он использовался для загрузки файлов в ведро s3.aws s3 putObject vs sync

Я использовал aws-sdk для node.js для загрузки s3. aws-sdk для node.js не содержит метода s3-sync. s3-sync лучше метода s3.putObject() ?. Мне нужна более быстрая загрузка.

ответ

1

Там всегда больше, чем способ заработать на вещи, так, чтобы загрузить файл в ведро S3 вы можете:

  • CLI использование AWS и запустить CLI aws s3 cp ...
  • использование AWS и запустить aws s3api put-object ...
  • используйте aws SDK (ваш язык выбора)

Вы также можете использовать метод sync, но для одного файла нет необходимости синхронизировать весь каталог и генерировать при поиске лучшей производительности лучше всего запустить несколько экземпляров cp, чтобы извлечь выгоду из многопоточной и моно-нити синхронизации.

В основном все эти методы являются оболочкой для вызовов API aws S3. От amazon doc

Выполнение вызовов REST API непосредственно из вашего кода может быть громоздким. Он требует, чтобы вы написали необходимый код, чтобы вычислить действительную подпись для аутентификации ваших запросов. Вместо этого мы рекомендуем следующие варианты:

  • Используйте AWS SDK для отправки ваших запросов (см. Пример кода и библиотеки). С помощью этой опции вам не нужно писать код для расчета подписи для проверки подлинности запроса, поскольку клиенты SDK аутентифицируют ваши запросы, используя ключи доступа, которые вы предоставляете. Если у вас нет повода для этого, вы всегда должны использовать SDK AWS.
  • Используйте AWS CLI для совершения вызовов Amazon S3 API. Для получения информации о настройке AWI CLI и примерах команд Amazon S3 см. Следующие темы: Настройка AWS CLI в Руководстве разработчика по простой службе хранения Amazon. Использование Amazon S3 с интерфейсом командной строки AWS в руководстве пользователя интерфейса командной строки AWS.

поэтому Amazon рекомендовал бы использовать SDK. В конце концов, я думаю, что это действительно вопрос того, что вам больше всего нравится, и как вы интегрируете этот фрагмент кода в остальную часть своей программы. Для одноразового действия я всегда перехожу к CLI.

С точки зрения производительности, использование одного или другого не будет иметь разницы, поскольку они снова являются оболочкой для вызова API AWS. Для оптимизации перевода вы должны посмотреть aws s3 transfer acceleration и посмотреть, можете ли вы включить его.

+0

Я развернул свой код на aws-lambda. Команда sdk или aws-cli лучше для лямбда? –

+0

, если ваш код работает на лямбда, узел js sdk является допустимым хорошим вариантом –

+0

спасибо federic. –

Смежные вопросы