Не удается переместить локальный файл на подключенный диск s3? PHP - PullRequest
0 голосов
/ 05 июля 2011

Я использую s3fs для подключения привода amazon s3 к моей файловой системе. Когда я использую функцию rename () в PHP для перемещения локального файла на подключенный диск, ничего не происходит. Можно ли использовать для этого rename ()?

$tempfile = $_SERVER['DOCUMENT_ROOT'].'/temp.png';
rename($tempfile,'/mnt/test.png');

Выше код не работает для меня. Диск, кажется, подключен, так как я вижу его файлы.

Оказывается, это была проблема с правами доступа - я исправил ее с параметром allow_other для s3fs, но теперь я получаю эту ошибку php при использовании rename ():

failed to open stream: Input/output error 

Ответы [ 3 ]

3 голосов
/ 06 июля 2011

Вы не можете переименовывать файлы в файловых системах в целом.Вам придется скопировать файл, а затем удалить оригинал.(Проблема не возникает с mv, потому что он автоматически обнаруживает ситуацию и выполняет всю операцию копирования / удаления.)

0 голосов
/ 06 марта 2014

Нашел этот камень здесь - и это решило мою "Ошибка ввода / вывода" при попытке загрузить файлы в мое смонтированное ведро S3:

Недавно я столкнулся с печально известной «Ошибка ввода / вывода» при новой установке r188.Ведро S3 было в порядке, и все остальное правильно, но все еще не работал.

Потребовалось много времени, чтобы обнаружить, что моя проблема связана с символом " + ", который был частью secretAccessKey.

Я создал новый ключ доступа и подставил эту информацию в файл / etc / passwd-s3fs , и все начали работать.

0 голосов
/ 06 июля 2011

У меня была похожая проблема, но я использовал Java.Поскольку s3fs эмулирует файловую систему, невозможно скопировать файл с одного fs на другой.

Мне пришлось написать две копии файла;один непосредственно на локальный fs, а затем один на эмулируемый диск.

...