我有两个在自定义VPC中运行的EC2实例,一个实例运行Ubuntu 16.04,另一个实例运行Amazon Linux 2017.03。我还分配了一个IAM角色,该角色允许对所有S3存储桶进行读写访问。
但是,当我尝试运行copy命令,将文件从实例复制到S3存储桶时,在Ubuntu服务器上失败。我在两台服务器上运行的命令是:
aws s3 cp /myfolder/myfile.txt s3://mybucket/backups/
它在Ubuntu上给出以下错误:
upload failed: ../../myfolder/myfile.txt to s3://mybucket/backups/myfile.txt seek() takes 2 positional arguments but 3 were given
其他所有工作都可以进行,例如,通过复制命令将文件从存储桶下载到服务器。VPC设置以及IAM角色和安全组都没有问题,因为这同样适用于运行Amazon Linux的其他服务器。
PS:使用--dryrun开关运行copy命令在Ubuntu服务器上不会出错。
最有可能是python版本和aws cli版本不匹配的问题。发布AWS CLI版本和python版本
python -V
aws --version
仅使用pip安装awscli,以使其获得正确的python版本。
pip install awscli
参考:github.com/aws/aws-cli/issues/2403
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句