Сохранение файла в удаленном домене - PullRequest
0 голосов
/ 16 апреля 2011

Я бы хотел разместить скрипт загрузки на одном сервере, но сохранить его на удаленном сервере.

В настоящее время у меня есть скрипт, который сохраняет в папку для записи на моем сервере. Это работает нормально, но когда я изменяю его на абсолютную ссылку (то есть. "http://www.somedomain.com/uploads/" вместо" / uploads / "), он говорит, что папка недоступна для записи. Разрешения для папки - 0777. Я что-то не так делаю?

В конечном итоге я хотел бы сохранить закачки на удаленный сервер (т. Е. "http://www.someotherdomain.com/uploads/"). Любые идеи? Как я могу сделать это с разрешениями пароля, чтобы исключить возможность для кого-либо загружать файлы в эту папку?

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 16 апреля 2011

Ниже приведена опция:

Загрузить файл временно на ваш сервер.После загрузки на localhost, используйте curl для загрузки файла на удаленный сервер.

Для защиты паролем вы можете использовать токен доступа , срок действия которого истекает каждые 1 час или около того.Передайте access_token как переменную с вашим запросом на загрузку.Удаленный сервер проверяет, что access_token существует и не истек, прежде чем принимать загрузку.

Установите имя пользователя и пароль для доступа.Если токен доступа не существует или его срок действия истек, используйте curl для отправки имени пользователя и пароля на удаленный сервер, который проверит правильность имени пользователя и пароля и возвратит новый access_token.

0 голосов
/ 16 апреля 2011

Я думаю, что когда-либо сталкивался с этой проблемой.Если я не ошибаюсь, чтобы понять вашу проблему, моя проблема такова.Я создаю upload.php на сервере A и получаю на сервере A, скажем, файл receive.php (он работает нормально).Затем я загружаю принимаемый файл (receive.php) на сервер B и изменяю upload.php на сервере A (который является местом назначения upload.php на сервере B).

Это проблема?Если проблема, как эта, это может быть проблема брандмауэра.Но сервер, которым я пользуюсь, это Centos.Затем я отключаю selinux и использую firehol для настройки брандмауэра в своих centos.Тогда все работает нормально.

Другой вариант, вы все равно можете получать файл на своем сервере A. Затем при получении вы передаете файл через ftp на сервер B, но я думаю, что для этого нужно приложить больше усилий.Потому что вам нужно настроить конфигурацию ftp (это ftp, sftp или sftp, используя pem / pkk).

0 голосов
/ 16 апреля 2011

Попробуйте через ftp

http://php.net/manual/de/book.ftp.php

...