Существует ли командная строка cURL для создания папки в хранилище Box.com?
Я успешно использую cURL для загрузки файлов в хранилище box.com:
:: send file to Box.com
::
:: Syntax: sb.bat <username> <password> <filename> [<destination filename>]
@setlocal enabledelayedexpansion
@set OutFile=https://dav.box.com/dav/%~4
@if "%~4" equ "" set OutFile=https://dav.box.com/dav/%~nx3
@echo Sending file: "%~dpnx3"
@echo Destination : "%OutFile%"
@set replace=%%20
@set OutFile=%OutFile: =!replace!%
curl --insecure -u %1:%2 -T "%~3" "%OutFile%"
@if %ErrorLevel% neq 0 echo CURL returned error code of %ErrorLevel%
@exit /b %ErrorLevel%
Однако команда не выполняется, если папка назначения еще не существует, и я не могу найти никаких примеров или документации о том, как вы можете использовать cURL для создания папки в хранилище Box.com.
** ОБНОВИТЬ **
Вот результирующий пакетный режим, основанный на принятом ответе Анаксунамана.
:: create a folder at Box.com
::
:: Syntax: cf.bat <username> <password> <pathname>
@setlocal enabledelayedexpansion
@set NewPath=https://dav.box.com/dav/%~3
@echo Creating folder: "%NewPath%"
@set replace=%%20
@set NewPath=%NewPath: =!replace!%
@set replace=/
@set NewPath=%NewPath:\=!replace!%
curl --insecure -u %1:%2 -X MKCOL "%NewPath%"
@if %ErrorLevel% neq 0 @echo cURL returned error code of %ErrorLevel%
@exit /b %ErrorLevel%
1 ответ
URL-адрес, к которому вы обращаетесь ( https://dav.box.com/dav/), является URL-адресом поддержки WebDAV из Box. Следовательно, вы должны иметь возможность использовать с ним обычные запросы WebDAV.
В вашем случае, чтобы создать папку, вы бы использовали -X MKCOL
с CURL (где MKCOL
является методом запроса WebDAV для создания "коллекции", то есть каталога). Попробуйте например:
curl --insecure -u %1:%2 -X MKCOL "https://dav.box.com/dav/test-folder"
куда %1:%2
являются email:password
, как в остальной части вашего сценария.