s3fs mount не может видеть объекты - PullRequest
1 голос
/ 21 октября 2011

Я успешно смонтировал мое ведро с помощью 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)

HELP !!!

Спасибо за любую помощь.

Thom

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Я слышал, что если вы используете S3FS, вам необходимо выполнить все транзакции файлов, используя этот интерфейс. Помещение файлов в корзину с помощью PHP может добавить их правильно, но поскольку они не были добавлены с помощью S3FS, они могут быть не видны на вашем смонтированном диске.

У меня есть смонтированная система S3FS, которую я использую для резервного копирования в Интернет, и есть все эти избыточные папки и файлы, которые сценарий резервного копирования не создает, но остается от других процессов. Ни один из этих файлов нельзя просмотреть с помощью Transmit или другого инструмента доступа S3, только на консоли Amazon AWS вы можете увидеть истинное содержимое вашего сегмента.

Похоже, что вы затронули еще одну проблему, хотя и с ACL.

Я бы предложил выполнить симиларный процесс, но с использованием S3FS для передачи файла через командную строку или s3Fox, посмотреть, дает ли он такие же результаты.

1 голос
/ 11 ноября 2011

Это потому, что подкаталогам не назначен ACL.Я решил проблему, создав объект подкаталога с общедоступным разрешением / acl на S3.

например, $s3->putObjectString("", 'bucketName', 'directoryName/', S3::ACL_PUBLIC_READ);

...