如何在命令行将文件从远程服务器移动到 s3

Posted

技术标签:

【中文标题】如何在命令行将文件从远程服务器移动到 s3【英文标题】:how to move files from remote server to s3 at the command line 【发布时间】:2015-12-09 20:49:05 【问题描述】:

我在远程服务器上有很多大文件,我想将它们移动到 S3 中。我想在命令行或使用 bash 脚本(例如,我不想使用像 cyberduck 这样的 gui 应用程序)来执行此操作,以便我可以自动化/复制工作。

我尝试使用 Osxfuse 和 sshfs 将远程服务器挂载到本地计算机上,然后使用 s3cmd 将其推送到 s3。这确实有效,但我一直遇到错误(无明显原因的连接丢失;安装错误等)。

这是最好的方法吗?有谁知道更好的方法吗?

谢谢, 一个

【问题讨论】:

【参考方案1】:

您可以使用minio client aka mc 来做同样的事情。

$ mc cp --recursive localDir/  s3/remoteBucket

如果网络断开,mc 将为您提供恢复上传的选项。

【讨论】:

【参考方案2】:

您的远程服务器在 ec2 中吗?您当前的设置需要两个副本(首先通过 sshfs 将数据提取到本地计算机,然后通过 s3cmd 推送到 s3),如果您直接在远程服务器上运行 s3cmd,则可以将其减少到一个。

如果您想将 s3 挂载为文件系统,还可以使用 goofys 或 s3fs 等工具。同样,您应该在远程服务器上执行此操作以避免额外的副本。

【讨论】:

以上是关于如何在命令行将文件从远程服务器移动到 s3的主要内容,如果未能解决你的问题,请参考以下文章

将多个文件从一个目录移动到远程 sftp 服务器上的另一个目录

在不使用 S3 存储桶的情况下将数据从远程服务器的 .gz 文件加载到 redshift 的 postgresql 实例?

如何将 AWS S3 存储桶与远程非 AWS 服务器上的文件同步?

git命令行将本地项目上传到仓库

Linux系统复制文件/文件夹到远程服务器

为啥从远程 AWS S3 服务器下载 json 文件时 axios GET 错误