Gibt es eine cURL-Befehlszeile zum Erstellen eines Ordners im Box.com-Speicher?

725
rossmcm

Ich verwende cURL erfolgreich, um Dateien in den Speicher von box.com hochzuladen:

:: 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% 

Der Befehl schlägt jedoch fehl, wenn der Zielordner noch nicht vorhanden ist. Ich kann keine Beispiele oder Dokumentation finden, wie Sie cURL zum Erstellen eines Ordners im Box.com-Speicher verwenden können.

** UPDATE **

Hier ist die resultierende Stapelroutine, basierend auf der akzeptierten Antwort von Anaksunaman.

:: 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

1 Antwort auf die Frage

1
Anaksunaman

Die URL, auf die Sie zugreifen ( https://dav.box.com/dav/ ), ist die URL für die WebDAV- Unterstützung von Box. Daher sollten Sie normale WebDAV-Anforderungen damit verwenden können.

Um einen Ordner zu erstellen, würden Sie in Ihrem Fall -X MKCOLcURL verwenden ( MKCOLdie WebDAV-Anforderungsmethode zum Erstellen einer "Sammlung", dh eines Verzeichnisses). Versuchen Sie zB:

curl --insecure -u %1:%2 -X MKCOL "https://dav.box.com/dav/test-folder" 

Wo %1:%2sind Sie email:password, wie im Rest Ihres Skripts.