This site requires JavaScript to be enabled
Knowledge Base: Public
Category: Communication & Collaboration / Box.com
3150 views

Note: FTP connections are intended only for bulk uploading of data to your account. FTP is not meant to be a day-to-day means of accessing data in your enterprise UCDavis Box account. For regular access to the files in your Box account from your computer, consider using Box Sync. However, if you find the Sync client problematic or you are using an unsupported operating system (i.e. Linux), FTP access to your Box files may be a solution for you.

To use FTP with your enterprise UCDavis Box account, you must first set an external password. See Creating and using an external password for enterprise Box.

You will also need an FTP client to connect to your account. One example is FileZilla (available for Windows, Mac and Linux).

To connect to your Box account using FileZilla, use the following settings:

FileZilla gives you the ability to navigate your local desktop file system and your Box.com folders side-by-side, moving files as necessary between the two.  Even better, files that live only in Box.com can be modified and will open in the associated software on your local computer, then when you save your changes will automatically be copied back to Box.com in a new version with all existing permissions intact.

Alternate method using Windows Powershell

You must still set the account's FTP password, but the following method will allow you to upload a file to box using FTP with Explicit SSL.

# You will need to define a user account and assign a password in order to use ftp.box.com
# the subfolder must use URL encoding, e.g. "%20" instead of spaces


$file = gci "C:\users\example\desktop\local folder\kitten.jpg"
$server = "ftp://ftp.box.com/"
$subfolder = "My%20Box%20Folder%20/My%20Box%20Subfolder/"
$user = "username@ucdavis.edu"
$pass = "Example-Secret-Password"


$typeDefinition = @"
using System;
using System.Net;
public class FtpClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        FtpWebRequest ftpWebRequest = base.GetWebRequest(address) as FtpWebRequest;
        ftpWebRequest.EnableSsl = true;
        return ftpWebRequest;
    }
}
"@


Add-Type -TypeDefinition $typeDefinition
$ftpClient = New-Object FtpClient
$ftpclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)
$ftpClient.UploadFile($server+$subfolder+$file.Name, "STOR", $file.FullName)
$ftpClient.Dispose()