0

あるリモートサーバーから S3 にファイルを移行しています。約 10,000 個のファイルがあります (すべてリモート サーバーから http URL 経由でアクセスできます)。合計サイズは約 300 GB です (個々のファイルは 1 GB を超えません)。この移行を行うための最も効率的な方法を見つけようとしています。これまでのところ、EC2 インスタンスがあり、S3CMD がインストールされています。PHP-SDK には、すべての URL を含むテキスト ファイルもあります。問題なく EC2 から S3 にファイルを移動できます。しかし問題は、EC2 ですべてをダウンロードすると、ストレージが不足することです。EC2 でファイルをダウンロードし (おそらく txt ファイルを参照)、S3 に移動し (S3CMD を使用)、次のファイルに移動する前に EC2 からファイルを削除する方法はありますか?

理想的には、リモートの場所からすべてを S3 に直接ダウンロードしたいと考えていますが、ここで誰かがそうであると言わない限り、それは可能ではないと思います。

助けてくれてありがとう。

4

1 に答える 1

1

現在の ec2 インスタンスが実行している OS がわかりません。ただし、Linux の場合は S3fs を使用できます
https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon

これにより、バケットをローカル ドライブ/フォルダーのようにマウントできます。次に、そこにファイルを簡単に移動できます。バックグラウンドでバケットにアップロードします。追跡しやすいように、何らかのバッチでそれらを移動します。それらを移動すると、アップロード後にローカル ファイル システムから削除されます。この方法でバケットにコピーすることもできます。完了したら、単純な比較を行って、同じファイルが両方のフォルダーに存在することを確認してから完了です。

明確にするためにコメントで尋ねられた質問に基づいて編集

リモート マシンで、AWS 認証情報を使用して Fuse をセットアップします。
S3 バケットをマウントします。Ubuntu のローカル フォルダー構造のようになります。
現在のファイルが に
/var/myfiles/folder1あり/var/myfiles/folder2
、S3 バケットをマウントするとしましょう/mybucket
mv /var/myfiles/folder1 /mybucket/folder1

繰り返しますが、それらをバッチで移動し、続行する前にフォルダーが一致することを確認します。

編集終了

EC2 インスタンスが Windows の場合、S3 バケットをローカル ドライブとしてマウントする方法は他にもあります。その後、同じプロセスが発生する可能性があります。

于 2015-05-28T18:46:37.683 に答える