웹에서 대규모 데이터 세트를 AWS S3로 직접 다운로드


12

누구든지 URL에서 큰 데이터 세트를 Amazon S3로 가져올 수 있는지 알고 있습니까?

기본적으로 큰 파일을 다운로드 한 다음 웹 포털을 통해 S3에 다시 업로드하지 않으려 고합니다. S3에 다운로드 URL을 제공하고 파일 시스템으로 다운로드 할 때까지 기다립니다. 쉬운 일처럼 보이지만 문서를 찾을 수는 없습니다.


좋은 질문입니다.
Pramit

답변:


10

분명히 AWS 계정을 보유하고 있으므로 다음을 권장합니다.

  • EC2 인스턴스 생성 (모든 크기)
  • wget (또는 curl)을 사용 하여 파일을 해당 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로 업로드하는 것이 매우 빠릅니다. 자신의 컴퓨터에서 업로드하는 것보다 훨씬 빠릅니다. 이렇게하면 파일을 컴퓨터로 다운로드하지 않아도되고 웹 인터페이스를 통해 파일을 업로드하는 데 상당한 시간을 절약 할 수 있습니다.


감사합니다. 나는 이와 같은 것을 고민하고 있었지만 더 쉬운 방법이 있는지 물어 보려고했다. 모든 단계를 지적 해 주셔서 감사합니다. 매우 도움이
윌 Stedden

@Daniel Zohar URL이 동적이면 어떻게 되나요? wget을 사용하면 파일이 다운로드되지 않고 다음 링크가있는 페이지 만 다운로드됩니다. cms.unov.org/UNCorpus/en/Download?file=UNv1.0.en-zh.tar.gz.00
echan00

3
  1. 충분한 스토리지로 EC2 인스턴스 시작

  2. 인스턴스에 ssh

  3. 로컬 머신에서 다운로드에 해당하는 curl 명령을 얻습니다. Google 크롬-> 네트워크 탭-> 복사-> 컬로 복사의 개발자 옵션을 사용할 수 있습니다 (이 단계는 kaggle과 같은 인증이 필요한 일부 웹 사이트에 필요합니다)

  4. 인스턴스 터미널에서 curl명령을 실행하십시오 ( 명령에 추가 -o output_file). 파일을 다운로드하여 저장합니다

  5. 인스턴스를 s3에 연결 aws config하도록 AWS 자격 증명을 구성합니다 (한 가지 방법은 명령 사용 , AWS 액세스 키 ID 및 비밀 제공).

  6. 이 명령을 사용하여 파일을 s3에 업로드하십시오.

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

2

Aws documentation : http://aws.amazon.com/code를 참조하십시오 . 대부분의 프로그래밍 언어에 사용 가능한 라이브러리가 있습니다. 따라서 버킷을 생성하고 코드에서 URL에서 데이터를 가져 와서 S3에서이 버킷에 쓰도록 구성 할 수 있습니다.

예를 들어 파이썬에서 :

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

참조 : https://boto.readthedocs.org/en/latest/s3_tut.html


나는 이것이 옳다고 생각하지 않습니다. url_data가 어디에서 오는지 확실하지 않습니다. 설명서에서 k.set_contents_from_string ()은 문자 그대로 'foobar'파일의 내용을 해당 문자열에 포함 된 내용으로 설정하는 것으로 보입니다. 해당 URL의 내용을 로컬로 다운로드 할 필요없이 s3으로 직접 푸시하고 싶습니다.
Will Stedden

1

s3 버킷을 ec2 인스턴스에 마운트 한 다음 / path / to / s3_mounted_on_a_folder로 cd하면 다음 명령을 사용할 수 있습니다.

wget https://your.download.url/

s3을 ec2에 마운트하려면 s3fs를 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.