私は得ることができませんでしたs3 sync
かs3 cp
数千のファイルと2ダース以上のサブディレクトリを含む55 GBのフォルダーをことも作業する。フォルダー全体を同期しようとすると、バケットに何もアップロードせずにawscliがサイレントに失敗するだけです。
すべてのサブディレクトリとそのコンテンツを最初に同期するためにこれを行うことになりました(フォルダ構造は保持されます):
nice find . -mindepth 1 -maxdepth 1 -type d | cut -c 3- | while read line; do aws s3 sync $"$line" "s3://bucketname/$line"; done
次に、これを実行して、最上位の30,000個のファイルを取得しました。
nice find . -mindepth 1 -maxdepth 1 -type f | cut -c 3- | while read line; do aws s3 cp "$line" "s3://bucketname/";
サーバーの負荷を確認し(負荷をw
表示するために使用できるヒント)、ctrl-z
負荷が高くなりすぎた場合はコマンドを中断してください。(fg
再度続行します)。
同様の状況にある人を助けるために、ここにこれを置きます。
ノート:
-mindepth 1
除外する .
-maxdepth 1
サブディレクトリのコンテンツをs3 sync
正常に処理するため、findがサブディレクトリのコンテンツを一覧表示できないようにします。
cut -c 3-
findの各結果の先頭から「./」を削除します。
aws s3 cp --recursive mylocalsrcdir s3://bucket/
、ローカルリポジトリのファイルをバケットの「ルートディレクトリ」に配置するだけです。aws s3 cp --recursive mydirectory s3://bucket/mydirectory
そうすると、ターゲット側でディレクトリ構造が再作成されます。