Кажется, что вы действительно пытаетесь сделать, это выполнить то, что делает FTP - копировать файлы из одного места в другое. Я бы предложил вам найти лучшие способы сделать это с помощью существующих библиотек кода FTP.
URI не являются файловыми дорожками, поэтому вы не можете рассматривать их как таковые. Это адресаты/локаторы ресурсов, которые, когда вы отправляетесь туда с вашим браузером (или другим клиентом, который их обрабатывает), запускают некоторые действия, определенные сервером, который находится за ними. Для того, что делает этот сервер, нет стандарта, следовательно, гибкость веб-сервисов. Поэтому, если ваш сервер делает так, чтобы принимать HTTP-запросы таким образом, чтобы облегчить копирование файлов, вам придется сворачивать свои собственные и передавать данные файла в запрос POST.
Чтобы сказать это по-другому, (1) не обрабатывать URI, как они являются файловыми путями - они не являются, (2) найти FTP-библиотеку для копирования файлов и/или (3), если вы действительно хотите создать веб-службу, которая делает это, абстрагировать детали копирования файлов через запрос POST. Если вы №3 понимаете, что ваше здание довольно близко к обычаю, и что оно, вероятно, будет работать только на подмножестве сайтов, которые следуют вашему конкретному дизайну (т. Е. Те, которые вы сами создаете). Нет стандартного набора параметров или «копирования файлов» через команду POST, что я знаю, что вы можете использовать это, чтобы «просто работать» - вам придется сопоставлять свой HTTP-запрос с веб-службой на сервер.
Что против файлов.copy (InputStream, Path)? Есть ли URL-адреса в мире, который является сетью? Или они больше похожи на указатель? Что вы можете получить? –
@owlstead. Моя библиотека должна возвращать непрозрачные пути пользователям. Они могут копировать эти (только для чтения) пути в локальную файловую систему, не требуя знать или не заботиться о том, находится ли файл локально (т. Е. В базе данных) или удаленно (веб-сервер). В InputStream отсутствуют атрибуты, которые я хотел бы предоставить своим пользователям, например имя файла или временную метку lastModified. – Gili
Понял, но то, что пользователи видят, не обязательно должно быть отражено основной реализацией. –