【问题标题】:Region conflict in AWS S3AWS S3 中的区域冲突
【发布时间】:2018-05-31 12:20:43
【问题描述】:

我在 S3 的欧盟(伦敦)地区有存储桶。我正在尝试通过命令行上传 tar 文件。最后它会抛出一个错误,这样说

A client error (PermanentRedirect) occurred when calling the PutObject operation: The bucket you are attempting to access must be addressed using the specified endpoint.Please send all future requests to this endpoint.

通过提供正确的访问密钥和区域,我已使用 aws configure 正确配置。有人能解释一下这个问题吗

我已经创建了一个脚本来通过创建一个 tar 文件来上传数据库

HOST=abc.com
DBNAME=db
BUCKET=s3.eu-west-2.amazonaws.com/<bucketname>/
USER=<user>
stamp=`date +"%Y-%m-%d"`
filename="Mgdb_$stamp.tar.gz"
TIME=`/bin/date +%Y-%m-%d-%T`
DEST=/home/$USER/tmp
TAR=$DEST/../$TIME.tar.gz
/bin/mkdir -p $DEST
echo "Backing up $HOST/$DBNAME to s3://$BUCKET/ on $TIME";
/usr/bin/mongodump --host $HOST --port 1234 -u "user" -p "pass"    --authenticationDatabase "admin"  -o $DEST
/bin/tar czvf $TAR -C $DEST .
/usr/bin/aws s3 cp $TAR s3://$BUCKET/$stamp/$filename
/bin/rm -f $TAR
/bin/rm -rf $DEST

【问题讨论】:

  • 我还通过在 aws 控制台中检查该区域来确认该区域是欧盟(伦敦)。
  • 你可以分享你用来上传到 S3 存储桶的命令吗?
  • @junkangli 我已经分享了脚本
  • 脚本中 S3Uri 的格式不正确。应该是s3://&lt;bucketname&gt;/&lt;prefix&gt;/&lt;filename&gt;。然后添加--region 选项来指定存储桶区域。
  • @junkangli 你能告诉我&lt;prefix&gt;在你的评论中是什么吗?

标签: amazon-web-services amazon-s3 ubuntu-14.04 s3cmd


【解决方案1】:

只需将区域附加到AWS Command-Line Interface (CLI) 命令:

aws s3 cp file.txt s3://my-bucket/file.txt --region eu-west-2

【讨论】:

  • 我尝试添加区域。 awscli 回复说,eu-west-2 is invalid maybe you meant eu-west-1。我添加了eu-west-1,它在问题中返回了相同的错误。
  • @darshankrishnaiah 如果eu-west-2 is invalid,您需要支持它的更新版本的cli。
  • pip install awscli --upgrade
【解决方案2】:

脚本中 S3Uri 的格式不正确。应该是s3://&lt;bucketname&gt;/&lt;prefix&gt;/&lt;filename&gt;。然后添加--region 选项来指定存储桶区域。

$BUCKET=<bucketname>
/usr/bin/aws s3 cp $TAR s3://$BUCKET/$stamp/$filename --region eu-west-2

【讨论】:

  • 也许尝试先发出不带变量的命令来排除故障。此外,请仔细检查您的存储桶的名称以及 AWS 凭证 - 确保该账户有权访问该存储桶。
猜你喜欢
  • 2011-11-15
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
相关资源
最近更新 更多