如何使用CLI将AWS S3存储桶内文件夹从公开设为私有并解决s3cmd报错
报错原因
command not found 是因为你的设备上未安装 s3cmd 工具,该工具属于第三方S3管理工具,不属于系统或AWS官方默认自带的命令组件,需要手动安装后才能调用。
解决方法
你可以选择以下任意一种方案操作:
方案1:安装s3cmd后执行原有命令
- 按你的操作系统执行对应的安装命令:
- macOS 系统:
brew install s3cmd(无brew可执行pip install s3cmd) - Debian/Ubuntu 系列Linux:
sudo apt update && sudo apt install s3cmd - CentOS/RHEL 系列Linux:
sudo yum install s3cmd - Windows 系统:先安装Python环境,再执行
pip install s3cmd
- 配置AWS访问凭证:执行
s3cmd --configure,按照终端提示输入你的AWS Access Key、Secret Key、默认区域信息,完成配置。 - 运行你原本的命令即可生效:
s3cmd setacl --acl-private --recursive s3://bucket-name/folder1/folder2/
方案2:使用AWS官方CLI操作(更稳定,推荐)
AWS官方CLI是官方维护的工具,对S3接口的兼容性更好,操作更稳妥:
- 按操作系统执行对应安装命令:
- macOS 系统:
brew install awscli - Debian/Ubuntu 系列Linux:
sudo apt update && sudo apt install awscli - CentOS/RHEL 系列Linux:
sudo yum install awscli - Windows 系统:可直接下载官方安装包安装,或安装Python后执行
pip install awscli
- 配置AWS访问凭证:执行
aws configure,按照提示输入你的AWS Access Key、Secret Key、默认存储桶所在的区域编码即可。 - 执行批量修改权限命令:
aws s3 cp s3://bucket-name/folder1/folder2/ s3://bucket-name/folder1/folder2/ --acl private --recursive --metadata-directive REPLACE
内容的提问来源于stack exchange,提问作者Mateo Criado
相关产品推荐
相关产品推荐

