2012-10-19 26 views
6

Ho un file da 27 GB che sto provando a spostare da AWS Linux EC2 a S3. Ho provato sia il comando 'S3put' che il comando 'S3cmd put'. Entrambi funzionano con un file di test. Né funziona con il file di grandi dimensioni. Non vengono forniti errori, il comando ritorna immediatamente ma non succede nulla.file di grandi dimensioni da ec2 a s3

s3cmd put bigfile.tsv s3://bucket/bigfile.tsv 
+0

Penso che il nuovo strumento S3CMD supporti il ​​caricamento multiparte automaticamente almeno la versione che viene fornita da Ubuntu. – Maziyar

+0

vedere http://stackoverflow.com/questions/5774808/s3cmd-failed-too-many-times/22107084#22107084, e suggerisco: http://stackoverflow.com/a/ 22107084/116293 – user116293

+0

ea volte è necessario l'accesso root 'sudo s3cmd put ...' – tarikakyol

risposta

5

Anche se è possibile caricare oggetti a S3 con dimensioni fino a 5 TB, S3 ha un limite di dimensione di 5 GB per una singola operazione PUT.

Per caricare file di dimensioni superiori a 5 GB (o anche file superiori a 100 MB), si desidera utilizzare la funzionalità di caricamento multipart di S3.

http://docs.amazonwebservices.com/AmazonS3/latest/dev/UploadingObjects.html

http://aws.typepad.com/aws/2010/11/amazon-s3-multipart-upload.html

(Ignorare la descrizione obsoleta di un limite oggetto 5GB nel post del blog di cui sopra. Il limite di corrente è 5 TB.)

La biblioteca boto per Python supporta il caricamento multipart e l'ultimo software boto include uno strumento a riga di comando "s3multiput" che si prende cura delle complessità per te e persino parallelizza i caricamenti delle parti.

https://github.com/boto/boto

+0

ah, questo sembra il prossimo problema che sto per colpire. Rigenerò il flie e vedrò come vado con s3multiput. Grazie. – waigani

0

Il file non esiste, doh. Ho realizzato questo dopo aver eseguito i comandi S3 in modalità dettagliata con l'aggiunta del tag -v:

s3cmd put -v bigfile.tsv s3://bucket/bigfile.tsv 
0

s3cmd versione 1.1.0 supporta il caricamento più parti come parte del comando "put", ma la sua ancora in fase beta (al momento)

Problemi correlati