在Ubuntu服务器上用亚马逊S3存储桶自动同步一个文件夹

我有一个应用程序运行在数字海洋服务器上,有两个文件夹正在更新用户上传的图像。

是否可以自动将新的上载从服务器文件夹传输到s3存储桶。

我已经在ubuntu服务器上configuration了AWS CLI。

谢谢

在我看来在这里没有完美的解决scheme,但你可以尝试这2条路线:

一个更好的实现将是您的Web应用程序直接上传并检索到S3存储桶。 S3是专门为此使用而devise的,并且提供了诸如基于表单的validation等很好的技巧。

您也可以尝试Minio客户端aka mc ,其开源和S3兼容的API。 您可以使用mc mirror命令将其归档。

安装minio客户端

  $ wget https://dl.minio.io/client/mc/release/linux-amd64/mc $ chmod 755 mc $ ./mc --help 

为Amazon S3configurationmc

 $ ./mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> 

 $ ./mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 

将本地文件夹复制到AWS S3

 $ ./mc mb mys3/mys3baucket $ ./mc mirror mylocaldir/ mys3/mys3baucket 

在第一个命令我创build了一个桶名称“mys3baucket”在第二个命令我镜像我的本地目录到我的S3桶“mys3baucket”

你可以在cron上设置这个,你全部设置为定期镜像。

mc执行以下命令

  ls List files and folders. mb Make a bucket or folder. cat Display contents of a file. pipe Write contents of stdin to one or more targets. When no target is specified, it writes to stdout. share Generate URL for sharing. cp Copy one or more objects to a target. mirror Mirror folders recursively from a single source to many destinations. diff Compute differences between two folders. rm Remove file or bucket [WARNING: Use with care]. access Manage bucket access permissions. session Manage saved sessions of cp and mirror operations. config Manage configuration file. update Check for a new software update. version Print version. 

希望能帮助到你。 免责声明:我为Minio工作