我正在尝试使用s3fs
Amazon S3 服务设置备份系统。我按照以下操作本指南和本指南。
尾随/var/log/messages
我得到:
Aug 28 13:37:46 server s3fs:###response=403
我已经尝试创建身份验证文件 /etc/passwd-s3fs 并设置访问和私钥,并通过命令行传递它。我多次检查了凭据并将其与 一起使用s3fox
,并且它正在运行。
我还将机器的时间(使用 date 命令)设置为与 Amazon S3 服务器的时间相同(我使用文件管理器获取了 S3 服务器上传文件的时间)。
不仅不起作用rsync
,像ls
或cp
这样的命令/mnt/s3
也不起作用。
答案1
您实际上可以将凭据存储在两个地方。系统级别或用户级别。从您的问题中不清楚您在哪里设置了这些内容。每个都需要不同的权限设置。
对于系统级别的权限放置,/etc/passwd-s3fs
应为640
。因此,chmod
如果不是这种情况,请像这样进行调整:
sudo chmod 640 /etc/passwd-s3fs
~/.passwd-s3fs
对于权限中的用户级别放置应该是600
。因此,chmod
如果不是这种情况,请像这样进行调整:
chmod 600 ~/.passwd-s3fs
此外,每个文件的内容都应遵循相当简单的格式,AccessKey:SuperSecretKey
无需其他任何内容。AccessKey
在冒号()的一侧是。在另一侧:
是。SuperSecretKey
答案2
嗨,有几次我也在 Linux 上安装 s3 bucket。我注意到了下面的链接。普通文档遗漏了有关权限的重要说明。因此,首先您需要取消安装该位置,然后更改密钥和目录的权限,然后再次安装。
您的挂载目录权限必须是 777,密钥文件权限必须是 600。请检查以下文档。
chmod 777 /mnt/dir/
chmod 600 ~/.passwd-s3fs
希望这会有所帮助,因为我在云端多次使用该文档。
答案3
仔细检查 /etc/passwd-s3fs 中的凭证
另外,请确保您使用的存储桶名称是您自己的存储桶名称(即,它对您来说是唯一的)(即,不要使用存储桶名称“test”或类似的名称,因为您不太可能拥有/声明该存储桶名称;存储桶名称与其他所有人的存储桶名称位于全局命名空间中)
此外,s3fs 不会创建存储桶;您需要先使用另一个 s3 工具创建存储桶,然后使用 s3fs 挂载它
答案4
检查 s3fs 挂载是否使用了正确的端口,如果是 k8s svc,则必须使用端口 9000 或与 9000 对应的 NodePort
minio-service NodePort 172.19.32.41 9090:30302/TCP,9000:31557/TCP 34m
(应用程序根目录) bash-4.2# s3fs test /share1 -o passwd_file=~/minio.creds -o url=http://10.9.0.12:31557 -o use_path_request_style
(应用程序根目录)bash-4.2# cp anaconda-post.log /share1
(应用程序根目录)bash-4.2# ls /share1 anaconda-post.log