菜鸟科技网

AWS S3命令行常用命令有哪些?

AWS S3(Simple Storage Service)是亚马逊云提供的高耐用性、高可用性的对象存储服务,通过命令行工具(如AWS CLI)可以高效管理S3中的数据,AWS CLI是官方提供的命令行界面,支持创建存储桶、上传下载文件、设置权限等操作,适合自动化脚本和批量管理场景,以下是AWS S3命令行的详细使用指南,涵盖常用命令、参数及示例。

AWS S3命令行常用命令有哪些?-图1
(图片来源网络,侵删)

确保已安装AWS CLI并配置好访问密钥,通过aws configure命令输入Access Key、Secret Access Key、默认区域和输出格式即可完成初始化。aws configure,然后依次提示输入信息,配置完成后,可使用aws s3 ls列出所有存储桶,或通过aws s3 ls s3://bucket-name查看指定桶内的文件列表。

创建存储桶是基础操作,命令为aws s3 mb s3://bucket-name,其中bucket-name需全局唯一,若需删除空桶,使用aws s3 rb s3://bucket-name;若桶内有文件,需先删除所有对象或使用--force参数强制删除,上传文件时,aws s3 cp local-file s3://bucket-name/remote-file可复制单个文件,--recursive参数支持整个目录上传,如aws s3 cp local-folder s3://bucket-name/folder --recursive,下载操作同理,只需交换源和目标路径,例如aws s3 cp s3://bucket-name/remote-file local-file

文件管理方面,aws s3 mv s3://source-bucket/file s3://target-bucket/file可实现跨桶或同桶移动文件,--recursive同样适用于目录,同步功能(aws s3 sync local-folder s3://bucket-name/folder)会对比本地与S3的差异,仅同步新增或修改的文件,双向同步需指定--delete参数删除目标中多余的文件。aws s3 ls s3://bucket-name --recursive --human-readable --summarize可递归列出所有文件并显示总大小,适合统计存储用量。

权限与访问控制可通过aws sapi命令管理,设置桶为公开读取:aws s3api put-bucket-acl --bucket bucket-name --acl public-read,或通过策略文件精细化控制:aws s3api put-bucket-policy --bucket bucket-name --policy file://policy.json,其中策略文件需定义允许的IAM用户及操作。

AWS S3命令行常用命令有哪些?-图2
(图片来源网络,侵删)

以下表格总结了常用AWS S3命令及其功能:

命令 功能 示例
aws s3 mb 创建存储桶 aws s3 mb s3://my-test-bucket
aws s3 rb 删除存储桶 aws s3 rb s3://my-test-bucket
aws s3 cp 复制文件/目录 aws s3 cp file.txt s3://bucket/ --recursive
aws s3 sync 同步本地与S3 aws s3 sync local/ s3://bucket/folder/
aws s3 mv 移动文件/目录 aws s3 mv s3://old/ s3://new/
aws s3 rm 删除文件/目录 aws s3 rm s3://bucket/file.txt --recursive
aws s3api put-bucket-acl 设置桶ACL aws s3api put-bucket-acl --bucket my-bucket --acl public-read

高级场景中,可通过生命周期策略自动转换存储类型(如从标准存储转为低频访问存储),或使用版本控制管理文件历史版本,启用版本控制:aws s3api put-bucket-versioning --bucket bucket-name --versioning-configuration Status=Enabled

相关问答FAQs:

  1. 如何解决AWS S3命令执行时出现的“Access Denied”错误?
    该错误通常因权限不足导致,检查IAM用户是否具备s3:*或特定操作(如s3:PutObject)的权限,并确认存储桶策略是否允许该用户访问,可通过aws s3api get-bucket-policy --bucket bucket-name查看当前策略,或使用aws iam get-user-policy --user-name username检查用户权限策略。

    AWS S3命令行常用命令有哪些?-图3
    (图片来源网络,侵删)
  2. 如何批量重命名S3桶内的文件?
    AWS S3本身不支持直接重命名,但可通过组合命令实现,使用aws s3 ls s3://bucket/folder/ --recursive获取文件列表,通过脚本生成aws s3 mv命令批量移动文件到新路径,具体步骤:

    • 导出文件列表:aws s3 ls s3://bucket/folder/ --recursive > filelist.txt
    • 编写脚本(如Python)解析filelist.txt,生成aws s3 mv命令并执行。
      注意:移动操作会产生额外的请求费用,建议在测试桶中验证。
分享:
扫描分享到社交APP
上一篇
下一篇