Часто нам нужно, чтобы клиенты присылали нам большие наборы резервных копий. В настоящее время мы используем 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 полный доступ к файлам и подпапкам. используйте учетные данные машины для входа в систему. с этими разрешениями только машина, которая загружает файл, сможет прочитать файл.