在云存储管理中,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

    2025-07-09T21:37:18-gtosainj.png

  • 通过这个命令,你可以查看当前的配置详情,确认是否配置正确。

二、基础操作命令

(一)查看存储桶相关

  • 列出所有存储桶: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

    2025-07-09T21:44:12-zmvzyzid.png使用--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 的功能远不止这些,大家可以根据实际需求进一步探索和学习。