Exemplo n.º 1
0
        public override Stream CreateUploadStream(IStorageProviderSession session, ICloudFileSystemEntry fileSystemEntry, long uploadSize)
        {
            // build the url
            string url = GetResourceUrl(session, fileSystemEntry, null);

            // get the session creds
            ICredentials creds = session.SessionToken as ICredentials;

            // build the webrequest
            FtpWebRequest networkRequest = (FtpWebRequest)_ftpService.CreateWebRequest(url, WebRequestMethodsEx.Ftp.UploadFile, creds, false, null);

            // set the binary mode
            networkRequest.UseBinary = true;

            // Notify FTP of the expected size
            networkRequest.ContentLength = uploadSize;

            // get the request stream
            WebRequestStream requestStream = _ftpService.GetRequestStream(networkRequest, uploadSize);

            // add disposal opp
            requestStream.PushPostDisposeOperation(CommitUploadStream, _ftpService, networkRequest, fileSystemEntry, requestStream);

            // go ahead
            return(requestStream);
        }