Is there a way of uploading to box.com storage via the command line?

I have build processes which are built around Windows batch files, and when successful, I want to upload the results to a Box.com account. Is there a way of doing this via the command line? Although the drag and drop interface of Box.com is OK, it remains the one manual step in the chain.


Solution 1:

Box supports WebDAV, FTP (only for business and enterprise customers) and has an API.

So you could either use a tool to mount the WebDAV entry as a drive, use FTP from the command line or install something like cURL and use the API from the command line. Note that the main support for the API is listed as being via StackOverflow!

Obviously, if you have Box sync installed, you can simply copy files into the sync folder as well.

In Windows \\dav.box.com@SSL\DavWWWRoot\dav is the URN to connect.

If you express a preference in the comments, I'll try to add more detail but I have to run now.

Solution 2:

Sorry, I cannot comment (needs 50 Reputation). As Julian mentioned, you can use WebDAV. This is also enabled for non business accounts; use the URL https://dav.box.com/dav. The folder can not seem to be mounted in windows: http://www.onemetric.com.au/Documentation/Mounting-A-WebDAV-Share-Windows-7 I think this is a Web Server problem. But you can use curl:

curl -u [email protected]:mypassword -T local_file_path  https://dav.box.com/dav/remote_file_name
curl -u [email protected]:mypassword  https://dav.box.com/dav/remote_file_name --output download_file_path

Solution 3:

I wrote PrintToBox to solve this need for enterprises using Linux/Unix. It uses Box's Java SDK so you must have JDK 7 or JDK 8 installed. I intend to port it to Windows and to Box Platform (to take advantage of App Auth/App Users) but it's not there yet (help wanted, heh).

Solution 4:

If you have worked with R language, there is a nice package at https://github.com/brendan-r/boxr for interacting with box via commandline.