【问题标题】:s3fs mount cannot see objectss3fs mount 看不到对象
【发布时间】:2012-03-19 10:55:24
【问题描述】:

我已经使用 s3fs 成功安装了我的存储桶,但是我看不到我使用 PHP 库创建的对象(子目录中的文件)。如果我在根级别添加文件,我可以看到。如果我在根级别创建文件,我可以看到。如果我创建一个目录,我可以在其中创建项目,但我看不到我之前创建的目录和对象。

如何查看之前创建的项目?我真的很想创建一个 EBS,挂载它,然后把这些东西从 S3 上取下来。我希望像这样安装 S3 会变得容易。

因为我只是想将对象从 S3 移动到 EBS,所以我也一直在尝试 s3sync。没运气。当 s3sync 尝试创建目录时,它创建了一些奇怪的东西......

---x-wx--T 1 root root 272 Oct 21 15:25 /photos/0

./s3sync.rb:638:in `initialize': No such file or directory - /photos/0.s3syncTemp     (Errno::ENOENT)

求助!!!

感谢您的帮助。

汤姆

【问题讨论】:

    标签: amazon-s3 amazon-web-services s3fs


    【解决方案1】:

    这是因为子目录没有分配 ACL。 我通过在 S3 上创建具有公共读取权限/acl 的子目录对象解决了这个问题。

    例如$s3->putObjectString("", 'bucketName', 'directoryName/', S3::ACL_PUBLIC_READ);

    【讨论】:

      【解决方案2】:

      我听说如果您使用 S3FS,那么您需要使用该接口进行所有文件事务。使用 PHP 将文件放入您的存储桶可能会正确添加它们,但由于它们不是使用 S3FS 添加的,因此它们可能在您安装的驱动器上不可见。

      我有一个挂载的 S3FS 系统用于 Web 备份,并且备份脚本不会创建所有这些冗余文件夹和文件,而是从其他进程遗留下来的。使用 Transmit 或其他 S3 访问工具无法查看这些文件,只有在 Amazon AWS 控制台上才能看到存储桶的真实内容。

      看起来您已经触及了 ACL 的另一个问题。

      我建议做一个类似的过程,但使用 S3FS 通过命令行或 s3Fox 传输文件,看看它是否产生相同的结果。

      【讨论】:

        猜你喜欢
        • 2015-10-24
        • 2011-01-03
        • 2022-11-30
        • 2016-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-25
        • 2012-01-20
        相关资源
        最近更新 更多