我有很多文件(〜50k,3Gb)的文件夾。我需要在OpenStak Swift-like存儲中遞歸地將這個文件夾同步到我的容器中。OpenStack Swift客戶端用於大量文件的最快同步?
我曾嘗試使用cli duck(cyberduck),但它在準備過程中的大量文件上崩潰。 我試圖使用supload工具,但它是如此緩慢:(
可能有人建議我這種情況的最佳方法(有的CLI更好)?
我有很多文件(〜50k,3Gb)的文件夾。我需要在OpenStak Swift-like存儲中遞歸地將這個文件夾同步到我的容器中。OpenStack Swift客戶端用於大量文件的最快同步?
我曾嘗試使用cli duck(cyberduck),但它在準備過程中的大量文件上崩潰。 我試圖使用supload工具,但它是如此緩慢:(
可能有人建議我這種情況的最佳方法(有的CLI更好)?
你應該使用官方的python-swiftclient包裝和簡單的:
# load your openstack credentials
source openrc.sh
cd path_to_directory_you_want_to_sync
# upload all the files recursively keeping good paths
swift upload --changed your_container *
斯威夫特不支持的rsync般的同步,但我用這個腳本在容器中刪除你在本地刪除的文件,並上傳新文件沒有要求迅速來比較每個文件:
#!/bin/bash
cd $2
diff <(find * -type f -print | sort) <(swift list $1 | sort) | while read x; do
if [[ $x == \>* ]]; then
echo "Need to delete ${x:2}"
swift delete $1 "${x:2}"
elif [[ $x == \<* ]]; then
echo "Need to upload ${x:2}"
swift upload $1 "${x:2}"
fi
done
cd -
使用帶:
./swift_sync.sh your_container directory_to_sync