Domanda

Qualcuno sa se è possibile importare un grande insieme di dati in Amazon S3 da un URL?

In sostanza, voglio evitare di scaricare un file enorme e poi reuploading alla S3 attraverso il portale web. Voglio solo di fornire l'URL di download per S3 e attendere per loro di scaricare al loro filesystem. Sembra una cosa facile da fare, ma non riesco proprio a trovare la documentazione su di esso.

È stato utile?

Soluzione

Dal momento che si possiede, ovviamente, un AWS conto mi consiglia il seguente:

  • Creare un'istanza EC2 (qualsiasi formato)
  • wget (o ricciolo) per recuperare il file (s) a tale istanza EC2 . Ad esempio: wget http://example.com/my_large_file.csv.
  • s3cmd
  • Usa s3cmd per caricare il file da S3. Ad esempio: s3cmd cp my_large_file.csv s3://my.bucket/my_large_file.csv

Dal momento che i collegamenti effettuati tra rete interna vari servizi AWS leva di AWS, caricando da un'istanza EC2 a S3 è abbastanza veloce. Molto più veloce di caricarlo dal proprio computer. In questo modo consente di evitare il download sul computer e risparmio di tempo potenzialmente significativo caricarlo tramite l'interfaccia web.

Altri suggerimenti

  1. Avviare un'istanza EC2 con memoria sufficiente

  2. ssh per l'istanza

  3. Ottenere il comando ricciolo corrispondente al download dal computer locale. È possibile utilizzare le opzioni per sviluppatori in Google Chrome -> scheda di rete -> copia -> Copia come ricciolo (Questo passaggio è necessario per alcuni siti web che richiedono l'autenticazione come kaggle)

  4. Dal terminale esempio, eseguire il comando curl (accodamento -o output_file al comando). Questo scaricherà e salvare il file

  5. Configura AWS credenziali per la connessione all'istanza di s3 (un modo è quello di usare il comando aws config, fornire AWS chiave di accesso Id e segreta),

  6. Utilizzare questo comando per caricare il file s3:

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

, consultare la documentazione Aws: http://aws.amazon.com/code ci sono librerie disponibili per la maggior parte dei linguaggi di programmazione. Così si può creare un secchio e configurare nel codice per recuperare i dati da URL e scrittura a questo secchio in S3

per esempio in python:

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

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

È possibile montare il vostro S3 secchio per istanza EC2 e poi cd per il percorso / / a / s3_mounted_on_a_folder, non ci si può semplicemente utilizzare il comando:

wget https://your.download.url/

per montare s3 al vostro EC2, uso s3fs.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top