2016-04-18 3 views
0

Für die Arbeit wäre es praktisch, den Befehl 'aws s3 cp' mit dem aws Java SDK zu implementieren.aws s3 cp> wie man den cp-Befehl mit mehrteiliger Kopie im aws Java SDK implementiert

Es gibt bereit Klasse wie TransferManager, hat AmazonS3Client Methode bekommen. Sie können die Dateien einfach auf das lokale Dateisystem herunterladen, aber die direkte Verwendung dieser Methode ist nur ein einziger Thread. Die angegebenen 'aws s3 cp' unterstützen die mehrteilige Kopie trotzdem. Kennt jemand dieses Thema?

Vielen Dank im Voraus

Antwort

1

Transfermanager tatsächlich ist multi-threaded. Sie können ihm einen Thread-Pool übergeben. Von the documentation:

Wenn möglich, versuchen Transfermanager mehr Threads zu Upload mehr Teile eines einzigen Upload auf einmal zu verwenden. Wenn es sich um große Inhaltsgrößen und hohe Bandbreite handelt, kann dies eine deutliche Erhöhung des Durchsatzes haben.

+0

Vielen Dank für Ihre tolle Antwort :) Eigentlich ist das meine ständige Frage. Ich habe auch den Konstruktor mit dem ExecutorService als Parameter bemerkt. Aber mein Problem ist, ich weiß nicht wie. Soll ich einen ExecutorService selbst implementieren? oder gibt es einen Thread-Pool dafür? Ich bin der Meinung, dass ich den ExecutorService selbst implementieren muss – Rui

+0

Ich bin ziemlich sicher, basierend auf der Dokumentation für die Konstruktoren, die keinen Thread-Pool als Argument nehmen, dass es nur intern einen Thread-Pool erstellt, wenn Sie nicht t pass es eins. –