在云存储管理中,AWS S3 凭借其高可用性、 scalability 和安全性成为众多开发者和企业的首选。而 AWS CLI(命令行界面)则为我们提供了一种高效、便捷的方式来管理 S3 资源。本文将为大家详细介绍 AWS CLI s3 的常用命令,帮助你轻松应对日常的 S3 操作。
一、配置 AWS CLI
在使用 AWS CLI 操作 S3 之前,我们需要先进行配置,确保能够顺利连接到 AWS 服务。
配置命令:
aws configure
执行该命令后,会提示你输入 Access Key ID、Secret Access Key、默认区域(如 us-east-1)和默认输出格式(如 json)。这些信息可以在 AWS 控制台的 IAM 服务中获取。
查看配置信息:
aws configure list
通过这个命令,你可以查看当前的配置详情,确认是否配置正确。
二、基础操作命令
(一)查看存储桶相关
列出所有存储桶:
aws s3 ls
执行后,会显示你的 AWS 账户下所有的 S3 存储桶名称以及创建时间。
查看存储桶内容:
aws s3 ls s3://bucket-name
将 “bucket - name” 替换为你的存储桶名称,即可列出该存储桶内的对象和子目录。
(二)创建与删除存储桶
创建存储桶:
aws s3 mb s3://bucket-name
需要注意的是,存储桶名称在全球范围内必须是唯一的,且要符合 S3 的命名规则(只能包含小写字母、数字、连字符,不能以连字符开头或结尾等)。
删除存储桶:
aws s3 rb s3://bucket-name
如果存储桶不为空,需要先删除桶内的所有对象才能删除存储桶。若要强制删除非空存储桶,可以使用
aws s3 rb s3://bucket-name --force
命令。
(三)上传与下载对象
上传文件到存储桶:
aws s3 cp local-file-path s3://bucket-name/destination-path
例如,
aws s3 cp ./test.txt s3://my-bucket/docs/
表示将本地当前目录下的 test.txt 文件上传到 my - bucket 存储桶的 docs 目录下。
下载存储桶中的文件:
aws s3 cp s3://bucket-name/source-path local-destination-path
比如,
aws s3 cp s3://my-bucket/docs/test.txt ./downloads/
会把 my - bucket 存储桶 docs 目录下的 test.txt 文件下载到本地的 downloads 目录。
上传文件夹到存储桶:
aws s3 cp local-folder-path s3://bucket-name/destination-folder --recursive
使用
--recursive
参数可以递归上传整个文件夹及其内容,例如aws s3 cp ./my-folder s3://my-bucket/data/ --recursive
。
下载存储桶中的文件夹:
aws s3 cp s3://bucket-name/source-folder local-destination-folder --recursive
同样加上
--recursive
参数,如aws s3 cp s3://my-bucket/data/my-folder ./local-data/ --recursive
。
(四)删除对象
删除存储桶中的单个文件:
aws s3 rm s3://bucket-name/file-path
例如
aws s3 rm s3://my-bucket/docs/test.txt
可删除指定的文件。
删除存储桶中的文件夹及其内容:
aws s3 rm s3://bucket-name/folder-path --recursive
如
aws s3 rm s3://my-bucket/data/my-folder --recursive
会删除 my - folder 文件夹以及里面的所有内容。
三、高级操作命令
(一)同步操作
同步本地文件夹到存储桶:
aws s3 sync local-folder-path s3://bucket-name/destination-folder
该命令会比较本地文件夹和存储桶中文件夹的内容,只上传新增或修改的文件,保持两者同步。例如
aws s3 sync ./local-docs s3://my-bucket/docs
。
同步存储桶文件夹到本地:
aws s3 sync s3://bucket-name/source-folder local-folder-path
与上一个命令相反,它会将存储桶中的文件夹同步到本地,如
aws s3 sync s3://my-bucket/docs ./local-docs
。
(二)设置存储桶权限
查看存储桶权限:
aws s3api get-bucket-acl --bucket bucket-name
通过这个命令可以获取存储桶的访问控制列表(ACL),了解当前的权限设置。
设置存储桶权限:
aws s3api put-bucket-acl --bucket bucket-name --acl acl-value
其中 acl - value 可以是 private、public - read、public - read - write 等,例如
aws s3api put-bucket-acl --bucket my-bucket --acl public-read
表示设置 my - bucket 为公开可读。
(三)其他实用命令
查看对象元数据:
aws s3api head-object --bucket bucket-name --key object-key
这个命令可以获取指定对象的元数据,如文件大小、修改时间等。
复制 S3 中的对象:
aws s3 cp s3://source-bucket/source-key s3://destination-bucket/destination-key
方便在不同存储桶之间复制对象。
四、使用技巧
利用
--dryrun
参数:在执行重要操作(如删除、同步)之前,可以加上--dryrun
参数,它会显示命令执行后会发生的变化,但不会实际执行操作,帮助你检查命令是否正确。例如aws s3 rm s3://my-bucket/docs --recursive --dryrun
。
结合管道和其他命令:AWS CLI 命令的输出可以通过管道传递给其他命令进行处理,如
aws s3 ls s3://my-bucket | grep "test"
可以筛选出包含 “test” 的对象或目录。
使用帮助命令:如果对某个命令不熟悉,可以使用
aws s3 command --help
查看详细的帮助信息,例如aws s3 cp --help
。
掌握这些 AWS CLI s3 常用命令,能够让你在管理 S3 资源时更加得心应手,提高工作效率。当然,AWS CLI 的功能远不止这些,大家可以根据实际需求进一步探索和学习。