public void UploadObject(UploadRequest request)
{
CheckUri(request.Uri);
try
{
var absolutePath = ResolvePath(request.Uri.AbsoluteUri);
if (request.CreateDirectory)
{
var ftpDiretoryUri = ExtractPath(absolutePath);
TryCreateDirectory(ftpDiretoryUri, true);
}
request.InputStream.Position = 0;
var serverUri = string.Format("{0}{1}", ftpRoot, absolutePath);
var ftpRequest = CreateFtpRequest(serverUri);
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
using (var requestSream = ftpRequest.GetRequestStream())
{
Pump(request.InputStream, requestSream);
}
var ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
ftpResponse.Close();
}
catch (Exception e)
{
throw new StorageException(string.Format("Failed to upload object with request {0}.", request), e);
}
}