Загрузка большого набора данных в Интернете непосредственно в AWS S3

datascience.stackexchange https://datascience.stackexchange.com/questions/5589

  •  16-10-2019
  •  | 
  •  

Вопрос

Кто -нибудь знает, возможно ли импортировать большой набор данных в Amazon S3 из URL?

По сути, я хочу избежать загрузки огромного файла, а затем перезагружать его в S3 через веб -портал. Я просто хочу предоставить URL -адрес загрузить URL на S3 и подождать, пока они загружают его в свою файловую систему. Кажется, это легко сделать, но я просто не могу найти документацию на ней.

Это было полезно?

Решение

Поскольку вы, очевидно, обладают аккаунтом AWS, я бы порекомендовал следующее:

  • Создайте экземпляр EC2 (любой размер)
  • Использовать wget(или скрутите), чтобы принести файл (ы) в этот экземпляр EC2. Например: wget http://example.com/my_large_file.csv.
  • Установить S3CMD
  • Использовать s3cmd Чтобы загрузить файл в S3. Например: s3cmd cp my_large_file.csv s3://my.bucket/my_large_file.csv

Поскольку подключения, выполненные между различными услугами AWS, используют внутреннюю сеть AWS, загрузка от экземпляра EC2 в S3 довольно быстрая. Гораздо быстрее, чем загружать его с собственного компьютера. Таким образом, позволяет избежать загрузки файла на ваш компьютер и сохранять потенциально значительную загрузку времени, загружая его через веб -интерфейс.

Другие советы

  1. Запустите экземпляр EC2 с достаточным количеством хранения

  2. SSH в экземпляр

  3. Получите команду Curl, соответствующую загрузке с вашей локальной машины. Вы можете использовать параметры разработчика в Google Chrome -> Вкладка «Сеть» -> Копировать -> Скопировать в качестве curl (этот шаг необходим для некоторых веб -сайтов, требующих аутентификации, такой как Kaggle)

  4. Из терминала экземпляра запустите curl Команда (добавление -o output_file к команде). Это загрузит и сохранит файл

  5. Настройка учетных данных AWS для подключения экземпляра к S3 (одним из способов является использование команды aws config, предоставить идентификатор ключа и секрета ключа AWS),

  6. Используйте эту команду, чтобы загрузить файл в S3:

    aws s3 cp path-to-file s3://bucket-name/
    

См. Документацию AWS: http://aws.amazon.com/code Есть библиотеки, доступные для большинства языков программирования. Таким образом, вы можете создать ведро и настроить в своем коде, чтобы получить данные из URL -адреса и записать в это ведро в S3

Например, в Python:

from boto.s3.key import Key
k = Key(bucket)
k.key = 'foobar'
k.set_contents_from_string(url_data)

Ref: https://boto.readthedocs.org/en/latest/s3_tut.html

Вы можете установить свое ведро S3 в экземпляр EC2, а затем CD в/path/to/s3_mounted_on_a_folder, вы можете просто использовать команду:

wget https://your.download.url/

Чтобы установить S3 до EC2, используйте S3FS.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top