s3cmd命令是可以操作AWS S3的非常强大的工具,不仅可以下载和上传文件,还有创建目录等功能。
s3cmd的使用场景是非常丰富的,比如把本地的日志文件备份到S3时,就可以使用s3cmd和cron的组合,进行定期的备份。 比如日志文件的保存期间是365天时,使用s3cmd从S3删除指定的目录等等。
在这里介绍一下利用s3cmd命令上传/下载文件的方法。
上传文件
上传指定的目录
把/mnt/aws/backup目录上传到s3上。
awsok.com是bucket名称,aws/folder可以当成s3上的目录名。
–r也可以写成–recursive(递归),是指定backup目录下的包括子目录的所有文件的意思。
s3cmd put --r /mnt/aws/backup s3://awsok.com/aws/folder
上传指定的文件
把本地的index.html文件上传到s3的aws/folder目录下。
s3cmd put --r /mnt/aws/backup/index.html s3://awsok.com/aws/folder
上传文件时默认是非公开的,可明确的指定非公开选项–acl-private。
公开时使用–acl-public选项。
下载文件
下载指定的目录
把folder目录下的所有文件下载到本地的/tmp目录下。
s3cmd get -r s3://awsok.com/aws/folder /tmp
下载指定的文件
把folder目录下的index.html文件下载到本地的/tmp目录下。
s3cmd get s3://awsok.com/aws/folder/index.html /tmp
删除文件
删除指定的目录
从s3上删除folder目录。
s3cmd del -r s3://awsok.com/aws/folder
删除指定的文件
从s3的aws/folder目录下的index.html文件。