s3fs: BUCKET /path/name -- bucket name contains an illegal character

文章目录

    今天遇到一个诡异的 s3fs 报错。当修改完 /etc/fstab,添加了一条 Linode Bucket 记录后,再执行

    mount -a
    

    报错:

    s3fs: BUCKET /path/name -- bucket name contains an illegal character
    

    很奇怪,之前尝试时,s3fs-fuse 将 Linode Object Storage 挂载到 Ubuntu Server 本地文件系统 也遇到过同样问题,那次是 bucket name 写错了。这次确认了几次,名字确实没有写错。

    /etc/fstab 内容

    # bucket1
    bucket1.sunzhongwei.com /var/bucket1 fuse.s3fs _netdev,allow_other,umask=022,uid=1000,gid=1000,use_path_request_style,nonempty,url=https://us-east-1.linodeobjects.com/ 0 0
    
    # bucket2
    bucket2 /var/bucket2 fuse.s3fs _netdev,allow_other,umask=022,uid=1000,gid=1000,use_path_request_style,nonempty,url=https://ap-south-1.linodeobjects.com/ 0 0
    

    不知道为何 bucket1 没有问题,只有 bucket2 报错。

    解决方案

    bucket2:/ /var/bucket2 fuse.s3fs _netdev,allow_other,umask=022,uid=1000,gid=1000,use_path_request_style,nonempty,url=https://ap-south-1.linodeobjects.com/ 0 0
    

    在 bucket name 后加上了 :/ 后缀,再次执行:

    sudo mount /var/bucket2
    

    就正常了。

    bucket:/ 方式:s3fs 可执行文件自身会按冒号 : 分割第一个参数,明确知道冒号前是 Bucket 名,冒号后是子路径(这里 :/ 表示根目录)。这种方式不依赖任何外部脚本,几乎在任何环境下都能工作。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式