文件同步命令行
增量同步上传对象
aws命令行
aws s3 sync:用于同步本地目录与S3存储桶,或两个S3存储桶之间的内容。
首次同步建议不加 --delete:先上传所有本地文件
预览同步操作:使用 --dryrun 查看将要执行的操作
建议使用版本控制:在S3上启用版本控制,以防误删
--delete (boolean) Files that exist in the destination but not in the source are deleted during sync.
Note that files excluded by filters are excluded from deletion.
aws s3 sync local_dir s3://my-bucket/
默认行为(不使用--delete):
如果本地有而S3没有的文件,则上传这些文件到S3。
如果S3有而本地没有的文件,则不会删除S3上的这些文件。
如果文件在两端都存在,但本地文件较新(或根据校验和不同),则会上传本地文件覆盖S3上的文件。
如果使用--delete选项:
除了上述同步操作外,还会删除目标位置(S3)中源位置(本地)没有的文件。
华为云
obsutil
obsutil sync aws s3 sync rsync
默认行为 增量同步 (-u),不删除 增量同步,不删除 默认同步所有,不删除
删除参数 -r --delete --delete
obsutil 的断点记录文件
阿里云- ossutil sync
ossutil sync file_url cloud_url [options]
sync 命令与cp命令的区别
sync命令强制以递归的方式遍历指定文件夹内所有文件或子文件夹。cp命令需增加-r选项才会进行递归操作。
通过sync命令将数据同步到OSS时,ossutil支持通过--delete选项将目的端存在而源端不存在的文件都删除,仅保留本次同步的文件。cp命令不支持--delete选项。
sync不支持--version-id选项,无法在已开启版本控制的Bucket内同步历史版本文件。cp命令支持--version-id选项。
除以上区别外,sync命令与cp命令用法类似。
OSS Vectors Embed CLI 命令行工具,
便捷地调用阿里云百炼向量模型,将 OSS 中的原始文件或存储在本地的文件进行向量化,
并将向量化结果写入到 OSS 向量 Bucket。
腾讯云
./coscli sync <source_path> <destination_path> [flag]
sync 命令用于同步上传、下载或拷贝文件,
与 cp 命令不同的是:sync 命令首先会对比同名文件的 crc64,如果 crc64值相同则不进行传输。
CRC64(循环冗余校验64位)是一种高效的数据完整性验证算法
COSCLI:使用 Go 语言开发,直接发布编译后的二进制文件,无需预先安装 Python 环境或其他依赖,开箱即用。
COSCMD:使用 Python 语言开发,安装前必须先安装 Python 环境,并需通过 pip 等工具安装其依赖包
COSCLI:仅支持 HTTPS 协议进行数据传输。COSCMD:同时支持 HTTP 和 HTTPS 协议。
在内网或对性能要求极高的场景下,使用 HTTP 可以避免 TLS 握手开销,获得更高的传输效率
Linux --rsync scp cp
Linux 的 rsync 是一个功能极其强大的文件同步工具,
比 AWS S3 sync 提供了更多的精细控制选项。它不仅可以用于本地同步,还可以通过 SSH 进行远程同步,是 Linux 系统管理员的重要工具
Linux 的 sync 是系统工具,用于确保数据持久化;而 AWS S3 的 sync 是文件同步工具,用于保持不同位置文件内容一
断点续传
--partial 选项告诉 rsync 在传输过程中创建部分传输文件(.rsync-filter 和 .rsync-tmp 文件)。
如果传输被中断,你可以再次运行相同的命令来恢复传输
rsync -a --delete
参考
https://support.huaweicloud.com/utiltg-obs/obs_11_0045.html
https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html