s3fs 输入/输出错误

s3fs 输入/输出错误

我正在尝试使用s3fsAmazon S3 服务设置备份系统。我按照以下操作本指南本指南

尾随/var/log/messages我得到:

Aug 28 13:37:46 server s3fs:###response=403

我已经尝试创建身份验证文件 /etc/passwd-s3fs 并设置访问和私钥,并通过命令行传递它。我多次检查了凭据并将其与 一起使用s3fox,并且它正在运行。

我还将机器的时间(使用 date 命令)设置为与 Amazon S3 服务器的时间相同(我使用文件管理器获取了 S3 服务器上传文件的时间)。

不仅不起作用rsync,像lscp这样的命令/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

将 AWS S3 存储桶挂载到 Ubuntu 文件系统

希望这会有所帮助,因为我在云端多次使用该文档。

答案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

相关内容