2013-03-08 14 views

risposta

11

lo uso S3 Tools, utilizzerà automaticamente la funzione di caricamento multipart per i file più grandi di 15 MB per tutti i comandi PUT:

multipart è abilitato di default e calci in per i file più grandi di 15MB. È possibile impostare questa soglia a partire da 5 MB (limite di Amazon) con -multipart-chunk-size-mb = 5 o qualsiasi altro valore compreso tra 5 e 5120 MB

Una volta installato e configurato, basta eseguire il seguente comando:

~$ s3cmd put largefile.zip s3://bucketname/largefile.zip 

in alternativa, si potrebbe utilizzare split dalla riga di comando sul file zip:

split -b1024m largefile.zip largefile.zip- 

e ricombinare in seguito sul filesystem u cantano:

cat largefile.zip-* > largefile.zip 

Se si sceglie la seconda opzione, si può decidere di archiviare un hash MD5 dei file prima di caricare in modo da poter verificare l'integrità dell'archivio quando viene ricombinato in seguito.

+0

Non fa più parte di upload * a * parallelo, che danneggia la sua velocità. Spiega anche i messaggi di errore su S3 in errore (questo è ciò che fa S3, superarlo) e cerca di rallentare ancora di più. –

5

boto library include uno strumento per riga di comando s3 denominato s3put che può gestire il caricamento multipart di file di grandi dimensioni.

0

È possibile dare un'occhiata al client FTP/Amazon S3/Glacier CrossFTP.

6

Il numero ufficiale AWS Command Line Interface supporta il caricamento di più parti. (Esso utilizza il boto successore botocore sotto il cofano):

L'AWS Command Line Interface (CLI) è uno strumento unificato per gestire i servizi AWS. Con un solo strumento da scaricare e configurare, puoi controllare più servizi AWS dalla riga di comando e automatizzarli tramite script.

Oltre a questo approccio unificato a tutte le API AWS, ma aggiunge anche una nuova serie di semplici file commands per trasferimenti di file efficiente da e Amazon S3, con caratteristiche simili al noto comandi Unix, ad esempio:

  • ls - oggetti Lista S3 e prefissi comuni sotto un prefisso o tutti i bucket S3.
  • cp - Copia un file locale o un oggetto S3 in un'altra posizione localmente o in S3.
  • sync - Sincronizza le directory e i prefissi S3.
  • ...

Così cp sarebbe sufficiente per il caso d'uso a portata di mano, ma essere sicuri di controllare sync pure, è particolarmente potente per molti scenari frequentemente riscontrate (e una sorta di implica cp a seconda degli argomenti).

+0

La CLI AWS ha completamente saturato la mia connessione a 7,3 MB/se non ha avuto esito negativo. Ho provato S3 Tools per un file da 1 GB, e ha continuato a mostrare errori e caricato a soli 2-3 MB/s. –

+0

Secondo questo documento aws s3 cp dovrebbe essere sufficiente a partire da settembre 2015: https://aws.amazon.com/blogs/apn/getting-the-most-out-of-the-amazon-s3-cli/ – einarc

1

Personalmente ho creato il file python s3upload.py con una semplice funzione per caricare file di grandi dimensioni utilizzando il caricamento di boto e multipart.

Ora ogni volta che ho bisogno di caricare file di grandi dimensioni, ho solo eseguire il comando in questo modo:

python s3upload.py bucketname extremely_large_file.txt 

Maggiori dettagli e il codice funzione può essere trovato here.

0

Ho appena iniziato a utilizzare s4cmd e ha gestito un file da 50 GB bene

Problemi correlati