关于在 Amazon linux 中永久安装 S3 存储桶

Regarding mounting S3 bucket in Amazon linux permanently

我有一个名为 test bucket 的 bucket,我需要将这个 bucket 安装在 /var/www/html/upload 下。该桶有 33 GB 数据。我正在使用下面的命令来挂载

/usr/bin/s3fs -o allow_other test         var/www/html/upload
                             [buck name]  [mount point ]

它已安装,但当我尝试列出文件时,它会抛出如下所示的错误

  df: ‘/var/www/html/upload: Transport endpoint is not connected
  1. 还有什么方法可以更改我安装 S3 存储桶的目录的所有权。当我尝试这样做时,我遇到了以下错误

    cp:保留“/upload/pp-11415-AfQqcI3t_o.jpg”的权限:不支持操作

如果有人对此提供帮助,那就太好了。 提前致谢。

这是我的步骤:

  • 启动亚马逊 Linux AMI:amzn-ami-hvm-2018.03.0.20200602.1-x86_64-gp2 (ami-05ca073a83ad2f28c)

  • https://github.com/s3fs-fuse/s3fs-fuse/wiki/Installation-Notes

    安装 S3FS
  • 安装 aws cli : https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html

  • 创建测试桶:测试桶

  • 使用以下策略创建 IAM 角色

    {
    "Version":"2012-10-17",
    "Statement":[
       {
          "Effect":"Allow",
          "Action":[
             "s3:ListAllMyBuckets"
          ],
          "Resource":"arn:aws:s3:::*"
       },
       {
          "Effect":"Allow",
          "Action":[
             "s3:ListBucket",
             "s3:GetBucketLocation"
          ],
          "Resource":"arn:aws:s3:::test-bucket"
       },
       {
          "Effect":"Allow",
          "Action":[
             "s3:PutObject",
             "s3:PutObjectAcl",
             "s3:GetObject",
             "s3:GetObjectAcl",
             "s3:DeleteObject"
          ],
          "Resource":"arn:aws:s3:::test-bucket/*"
       }
    ]
    

    }

  • 将角色附加到实例。角色是测试角色

  • 创建/上传目录

  • 最后使用下面的命令来挂载 s3 存储桶。

    sudo s3fs -o iam_role="test-role " -o url="https://s3-eu-central-1.amazonaws.com" -o endpoint=eu-cal-1 -o dbglevel=info -o curldbg -o allow_other -o use_cache=/tmp test-bucket /upload

  • 验证装载文件夹

    df -h

  • 更改所有权

    sudo chown -R ec2-user:ec2-user /upload

  • 能够在 /upload 中创建包含一些内容的测试文件,也可以在 S3 控制台中看到相同的文件。

希望对您有所帮助。