开发者

Block file during uploading on FTP

开发者 https://www.devze.com 2022-12-21 08:04 出处:网络
I have two services client and server. Client upload file on some ftp and server download it. So there can occur situation when client do not finish upload file and server already start download this

I have two services client and server. Client upload file on some ftp and server download it. So there can occur situation when client do not finish upload file and server already start download this file. In that situation i have cuted file. How can solve it?

For example when i upload and at the same time download it using FileZilla the download process waiting for upload finish and then start downloading. So开发者_开发问答 downloaded file not correpted.

Here is uploading code:

request = (FtpWebRequest)FtpWebRequest.Create("ftp://192.168.99.3/"
+ file7z); 
request.Credentials = new NetworkCredential("login", "pass"); 
request.Method = WebRequestMethods.Ftp.UploadFile; 
request.Proxy = null;        
request.UsePassive = true; request.UseBinary = true;

byte[] fileContents = File.ReadAllBytes(all7zfullpath); 
request.ContentLength = fileContents.Length;

Stream stRequest = request.GetRequestStream(); 
stRequest.Write(fileContents, 0, fileContents.Length); 
stRequest.Close();


One solution is to upload the file with a special name or in a special folder such that the downloader won't recognize it. Then have the client move/rename the file once it's been completely uploaded so that the server will recognize it.


If you have control over the FTP server, you could simply lock any file that is currently being uploaded. Then the download attempt will fail until the upload is complete. This has the downside of the server having to retry every so often.

0

精彩评论

暂无评论...
验证码 换一张
取 消