背景:我有一个使用AWS Web界面上传数据的Amazon S3存储桶。 现在我需要对我的桶中的path进行基于权限的访问给FTP用户。 为此,我在新的Amazon EC2实例上运行vsftpd和s3fs。 问题是存储桶内容具有path名而不是点文件,而巨大的文件大小会在vsftpd中创build一个exception。 ls -la看起来像这样:
$ pwd /mnt/my-bucket-name/pathname $ ls -la total 1 drwxrwxr-x 1 root root 0 Jun 16 19:54 dir1 drwxrwxr-x 1 root root 0 Jun 16 19:54 dir2 ---------- 1 root root 18446744073709551615 Dec 31 1969 pathname
而应该看起来更像是:
$ ls -la total 500 drwxrwxr-x 1 root root 500 Jun 16 19:54 . drwxrwxr-x 1 root root 500 Jun 16 19:54 .. drwxrwxr-x 1 root root 500 Jun 16 19:54 dir1 drwxrwxr-x 1 root root 500 Jun 16 19:54 dir2
当FTP用户尝试连接时,他们得到一个错误:
ftp> ls 229 Entering Extended Passive Mode (|||14017|). 150 Here comes the directory listing. 500 OOPS: invalid inode size in vsf_sysutil_statbuf_get_size
使用以下命令挂载存储桶: sudo s3fs my-bucket-name /mnt/my-bucket-name -o allow_other -o default_acl=public-read
我在一个月前在s3fs的google代码页上创build了一张票,在这个数小时之内就被黑了,我很难过。 任何想法我做错了什么?