質問

はPythonからアマゾンS3から大量のファイル(比較的小さな10-50kB)を取得するための最速の方法は何ですか? ( - 百万のファイル200,000ために)。

現時点では私は署名付きURLを生成するためのbotoを使用して、ファイル一つ一つを取得するためにPyCURLを使用しています。

同時実行のヘルプのいくつかのタイプでしょうか? PyCurl.CurlMultiオブジェクト?

私はすべての提案を開いています。ありがとう!

役に立ちましたか?

解決

のpythonの場合、これはIOバインドされているように、複数のスレッドがCPUを使用しますが、それはおそらく唯一つのコアを使用します。あなたが複数のコアを持っている場合は、新しいマルチプロセッサのモジュールを検討する必要があります。それでもあなたは、各プロセスが複数のスレッドを使用したいことがあります。あなたは、プロセッサとスレッドの数のいくつかの調整を行う必要があります。

あなたが複数のスレッドを使用する場合は、

、これは/ <キューのための良い候補であります>クラスます。

他のヒント

私は、Pythonについて何も知りませんが、一般的に、あなたは彼らが同時に実行できるように、より小さなチャンクにダウンタスクを分割したいと思います。あなたは、ファイルタイプ、またはアルファベット順か何かでそれを打破して、ブレークダウンの各部分のために別々のスクリプトを実行することができます。

あなたは s3fs に、とだけ実行している同時ファイル・システム・コマンドを使用して検討するかもしれませんパイソンから。

あなたはおそらくしたいと思うことばかりですが、

私は、認証URLを取得し、twisted.web.client.DownloadPageを使用するために、S3の仕事のためのツイストでtxawsを使用してきた(デフォルトで楽しくあまりせずにファイルへのストリームから行きます相互作用)。

ツイストは、あなたが好きな同時実行時に実行することが容易になります。 200,000順番に何かのために、私はおそらく発電機を作り、私の同時実行を設定して、ちょうど発電機は、すべての必要なダウンロード要求を発生させるために協力者を使用すると思います。

あなたがツイストに慣れていない場合は、

、あなたはモデルがに慣れるために少し時間がかかりますが、それはああ、それとても価値がある見つけることができます。この場合、私はそれは、最小限のCPUとメモリのオーバーヘッドを取ることを期待しますが、ファイル記述子を心配する必要があると思います。それはあなた自身がより多くのファイル記述子を必要とするか、複数の接続を持っている場合、その上あなたはプルダウンすることを希望見つける必要があり、複数のマシンに斜視ブローカーや農場で作業をミックスするのは非常に簡単です。

スレッド+キューについて、私はこの記事を愛するもの:実用的なスレッドプログラミングPythonのを持つ

各ジョブは、適切なツールを使用して行うことができます。)

あなたはストレステストS3 :)のためのpythonを使いたいので、私は大容量のダウンローダプログラムを見つけ、それへのリンクを渡す勧めます。

Windows上で私は( http://reget.comするからシェアウェア、)ReGetはプログラムをインストールして作成するための経験を持っていますCOMインターフェースを介してタスクをダウンロードします。

使用可能なインターフェースを持つもちろんができる他のプログラムが存在します。

よろしく!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top