Назад | Перейти на главную страницу

Настройка сервера BITS только для загрузки

Часто нам нужно, чтобы клиенты присылали нам большие наборы резервных копий. В настоящее время мы используем ftp, однако мы сталкиваемся с проблемой закрытия ftp-клиента на клиентском компьютере до завершения передачи.

Мы хотели бы использовать фоновую интеллектуальную службу передачи (BITS), однако у меня возникли проблемы с созданием той же учетной записи в стиле «UploadOnly», что и на FTP.

Пока что у меня он использует аутентификацию NTLM через SSL, и он отлично работает для обычного варианта использования, когда можно загружать и скачивать. Однако, если я удалю разрешения «Изменить» (в частности, удалив разрешения «Список папок / чтение данных», «Чтение расширенных атрибутов» или «Удалить») в виртуальном каталоге для учетной записи загрузки, я получаю следующую ошибку при попытке выполнить загрузку со стороны клиента:

Start-BitsTransfer : Access is denied.
At line:1 char:19
+ Start-BitsTransfer <<<<  -TransferType Upload -Source E:\test.bin -Destination https://www.example.com/BitsUpload/test.bin -Credential $c -Authentication NTLM
    + CategoryInfo          : InvalidOperation: (:) [Start-BitsTransfer], Exception
    + FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBits
   TransferCommand

Кроме того, если разрешение «Удалить» не проверено, в папке загрузки остается файл размером 0 КБ с именем bitssrv_{RANDOM_GUID}_statefile где RANDOM_GUID - это отдельный идентификатор для каждого файла.

Что мне нужно сделать, чтобы настроить BITS, чтобы я мог выгружать данные на сервер, но не скачивать их? Если это невозможно сделать то, что я хочу, дайте мне знать, я могу просто создать сценарий, который перемещает его из папки загрузки после завершения передачи.

Немного запоздалый ответ, но это может быть полезно для других: BITS выполняет всю загрузку с помощью глагола BITS_POST. (При загрузке используются HEAD и GET, как и ожидалось).

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

при использовании общей учетной записи это невозможно. Частью BITS является возможность перезапуска прерванной передачи файлов, которая выполняется путем чтения конца файла, чтобы узнать, с чего начать. поэтому для возможности поместить файл всегда будет требоваться возможность его чтения.

вариант может заключаться в том, чтобы вместо использования одной учетной записи для входа в систему создать группу из всех машин, которые будут отправлять файлы. предоставить группе доступ на изменение папки (но не подпапок и файлов). также предоставьте CREATOR OWNER полный доступ к файлам и подпапкам. используйте учетные данные машины для входа в систему. с этими разрешениями только машина, которая загружает файл, сможет прочитать файл.