问题描述
使用goofys挂载TOS失败,日志报错ERROR Unable to access bucket_demo。
问题分析
凭证文件格式问题导致无法正常被解析AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY
,导致的权限不足。
解决方案
1.查看goofys的具体日志报错信息,查看日志中信息如下:
s3.ERROR code=NoCredentialProviders msg=no valid providers in chain,main.ERROR Unable to access 'bucket_demo': NoCredentialProviders: no valid providers in chain. Deprecated.#012#011For verbose messaging see aws.Config.CredentialsChainVerboseErrors
2.查看对应的用户在TOS上的权限,确认用户权限是没有问题的
3.因为goofys输出的日志信息有限,所以使用aws cli排查用户凭证问题
下载aws cli的客户端
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o"awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
执行Listbuckets操作,查看具体的报错信息
aws s3 ls --endpoint-url=http://tos-s3-cn-beijing.volces.com
报错信息如下:
Unable to parse config file: /root/.aws/credentials
由此可以判断出,上传失败的原因为credentials的文件格式问题导致无法解析
4.备份原来的credentials, 按照如下格式重新编辑
$ cat ~/.aws/credentials
[default]
aws_access_key_id = AKID123*****8KFS
aws_secret_access_key = MY-SECRET-KEY
5.测试权限没有问题后,执行挂载操作
./goofys --debug_fuse --debug_s3 --file-mode=0777 --dir-mode=0777 --endpoint https://tos-s3-cn-beijing.ivolces.com <bucket:prefix> <mountpoint>
如果您有其他问题,欢迎您联系火山引擎技术支持服务