Alguém sabe se é possível importar um grande conjunto de dados para o Amazon S3 a partir de um URL?
Basicamente, eu quero evitar o download de um arquivo enorme e depois enviá-lo novamente para o S3 através do portal da web. Eu só quero fornecer o URL de download para o S3 e esperar que eles façam o download no sistema de arquivos. Parece uma coisa fácil de fazer, mas simplesmente não consigo encontrar a documentação.
Respostas:
Como você obviamente possui uma conta da AWS, recomendo o seguinte:
wget http://example.com/my_large_file.csv
.s3cmd
para fazer upload do arquivo para o S3. Por exemplo:s3cmd cp my_large_file.csv s3://my.bucket/my_large_file.csv
Como as conexões feitas entre vários serviços da AWS aproveitam a rede interna da AWS, o upload de uma instância do EC2 para o S3 é muito rápido. Muito mais rápido do que enviá-lo do seu próprio computador. Dessa forma, você evita o download do arquivo no seu computador e economiza um tempo potencialmente significativo ao carregá-lo pela interface da web.
fonte
Iniciar uma instância do EC2 com armazenamento suficiente
ssh para a instância
Obtenha o comando curl correspondente ao download na sua máquina local. Você pode usar as opções de desenvolvedor no Google chrome -> guia rede -> copiar -> copiar como ondulação (esta etapa é necessária para alguns sites que exigem autenticação, como o kaggle)
No terminal da instância, execute o
curl
comando (acrescente-o output_file
ao comando). Isso fará o download e salvará o arquivoConfigure as credenciais do aws para conectar a instância ao s3 (uma maneira é usar o comando
aws config
, fornecer o ID e o segredo da chave de acesso da AWS),Use este comando para fazer upload do arquivo para s3:
fonte
Consulte a documentação do Aws: http://aws.amazon.com/code, existem bibliotecas disponíveis para a maioria das linguagens de programação. Assim, você pode criar um bucket e configurar no seu código para buscar dados do URL e gravar nesse bucket no s3
por exemplo em python:
Ref: https://boto.readthedocs.org/en/latest/s3_tut.html
fonte
Você pode montar seu bucket s3 na instância ec2 e depois fazer o cd na pasta / path / to / s3_mounted_on_a_folder, onde você pode simplesmente usar o comando:
para montar s3 no seu ec2, use s3fs.
fonte