背景:
我有一个 Amazon S3 存储桶,其中包含使用 AWS Web 界面上传的数据。现在我需要向 FTP 用户授予对我的存储桶内路径的基于权限的访问权限。为此,我在一个新的 Amazon EC2 实例上运行 vsftpd 和 s3fs。问题是存储桶内容有路径名而不是点文件,巨大的文件大小在 vsftpd 中创建了一个异常。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 代码页上创建了一张票,花了几个小时破解它,但我还是很困惑。有人知道我做错了什么吗?