1

我已经使用 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)

帮助!!!

感谢您的帮助。

汤姆

4

2 回答 2

1

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

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

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

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

于 2012-03-19T02:55:24.100 回答
1

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

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

于 2011-11-11T03:22:15.767 回答