LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

基于C#的開(kāi)源庫(kù)FluentFTP全面介紹

admin
2023年10月9日 9:49 本文熱度 1005

前言

FluentFTP是提供給.NET和.NET Standard使用的,一個(gè)完全由托管的FTP和FTPS實(shí)現(xiàn)的經(jīng)過(guò)速度優(yōu)化的類庫(kù)。它提供了全面的FTP的指令,功能包括文件上傳/下載,SSL/TLS連接,自動(dòng)目錄清單列表解析,文件哈希/校驗(yàn)和,文件權(quán)限/CHMOD權(quán)限,F(xiàn)TP代理,UTF-8編碼支持,Async/await支持,Powershell支持等等。

FluentFTP完全是由C#語(yǔ)言編寫的,并且沒(méi)有額外的依賴。它是在寬松的MIT許可下發(fā)布的,因此,F(xiàn)luentFTP既可以用于私有的應(yīng)用程序,也可以用于自由/開(kāi)源的應(yīng)用程序。

如果你需要讓一個(gè)特定的問(wèn)題優(yōu)先進(jìn)行支持,可以考慮使用IssueHunt為處理這個(gè)問(wèn)題提供資金資助。


 特性

  • 全面支撐FTP、FTPS(SSL下的FTP)、客戶端證書FTP和CCC(用于FTP防火墻)的FTPS

  • 文件管理:

  1. 主要的服務(wù)器類型(例如Unix、Windows/IIS、Azure、Pure-FTPd、ProFTPD、Vax、VMS、OpenVMS、Tandem、HP NonStop Guardian、IBM OS/400、AS400、Windows CE、Serv-U)提供文件和文件夾清單列表顯示

  2. 完全遞歸的目錄清單列表和目錄刪除(手動(dòng)遞歸和服務(wù)器遞歸)

  3. 帶有進(jìn)度跟蹤方式,輕松地從服務(wù)器上上傳和下載一個(gè)文件

  4. 自動(dòng)驗(yàn)證文件的哈希值,并且在文件哈希值不匹配的時(shí)候重新嘗試傳輸

  5. 多文件傳輸?shù)目膳渲缅e(cuò)誤處理(忽略/終止/拋出)

  6. 使用標(biāo)準(zhǔn)的流,輕松地從服務(wù)器讀取和寫入文件數(shù)據(jù)

  7. 創(chuàng)建、附加、讀取、寫入、重命名、移動(dòng)刪除文件和文件夾

  8. 遞歸刪除文件夾及其所有內(nèi)容

  9. 獲取文件/文件夾信息(存在、大小、安全標(biāo)志、修改日期/時(shí)間)

  10. 獲取和設(shè)置文件的權(quán)限(所有者、組、其他)

  11. 絕對(duì)路徑或相對(duì)路徑(相對(duì)于“工作目錄”)

  12. 獲取文件的哈希值和校驗(yàn)和(SHA-1、SHA-256、SHA-512和MD5)

  13. 取消對(duì)符號(hào)鏈接的引用,以計(jì)算鏈接的文件/文件夾

  14. 通過(guò)可配置的速度限制,節(jié)流上傳和下載

  • FTP協(xié)議:

  1. 自動(dòng)檢測(cè)工作連接設(shè)置自動(dòng)連接協(xié)定

  2. 自動(dòng)檢測(cè)FTP服務(wù)器軟件以及它的性能

  3. 對(duì)FTP命令的廣泛的支持,包括一些特定于服務(wù)器的命令

  4. 使用execute()方法可以輕松地發(fā)送服務(wù)器特定的FTP命令

  5. 使用.NET的SslStream,顯式或者隱式對(duì)控制和數(shù)據(jù)提供SSL連接的支持

  6. 無(wú)源和有源的數(shù)據(jù)連接(PASV、EPSV、PORT和EPRT)

  7. 支持Unix CHMOD,PRET,ProFTPD的SITE MKDIR和RMDIR命令,Serv-U的RMDA命令

  8. 支持FTP代理(User@Host,HTTP 1.1,BlueCoat)

  9. FTP命令日志通過(guò)使用TraceListeners(密碼省略)來(lái)跟蹤或者記錄輸出到一個(gè)文件中

  10. 不支持SFTP,因?yàn)樗峭ㄟ^(guò)SSH的FTP,這是一個(gè)完全不同的協(xié)議(請(qǐng)使用SSH.NET來(lái)處理)

  • 異步支持:

  1. 對(duì)于所有的方法可以通過(guò)使用async/await來(lái)實(shí)現(xiàn)同步和異步的方法

  2. 通過(guò)使用IAsyncResult方式(Begin*/End*)支持.NET 4.0及其以下的的版本,來(lái)實(shí)現(xiàn)方法的異步調(diào)用

  3. 所有的異步方法都可以通過(guò)傳遞一個(gè)CancellationToken來(lái)實(shí)現(xiàn)中途的取消

  4. 所有的異步方法都遵循ReadTimeout,并且在超時(shí)的時(shí)候,它們會(huì)自動(dòng)取消自己

  5. 通過(guò)克隆文件傳輸?shù)腇TP控制連接來(lái)提高文件線程的安全性(可選)

  6. 實(shí)現(xiàn)自己內(nèi)部的鎖定,以保持事務(wù)的同步

  • 可擴(kuò)展:

  1. 輕松地添加對(duì)更多的代理類型的支持(簡(jiǎn)單地繼承FTPClientProxy

  2. 輕松地取消對(duì)目錄清單列表解析器的支持(參閱例子CustomParser

  3. 通過(guò)使用FtpTrace.AddListener來(lái)實(shí)現(xiàn)輕松的添加自定義日志/跟蹤的功能

  4. 通過(guò)擴(kuò)展FluentFTP.ps1中的腳本,可以輕松的添加自己的Powershell命令


 發(fā)布

穩(wěn)定的二進(jìn)制文件在NuGet上發(fā)布,包含在.NET/CLR應(yīng)用程序中使用FTP/FTPS所需的所有內(nèi)容。相關(guān)的用法,請(qǐng)參閱下面的示例用法的部分和文檔的部分。

  • Nuget(最新的)

  • Release Notes(每個(gè)發(fā)布版本的特性和修復(fù))

FluentFTP工作在.NET和.NET Standard/.NET Core。

平臺(tái)

二進(jìn)制文件夾

.NET 2.0

net20

.NET 3.5

net35

.NET 4.0

net40

.NET 4.5

net45

.NET Standard 1.4

netstandard1.4

.NET Standard 1.6

netstandard1.6

.NET Standard 2.0

Netstandard2.0

 

這些平臺(tái)也支持FluentFTP:(通過(guò).NET Standard)

  • Mono 4.6

  • Xamarin.iOS 10.0

  • Xamarin.Android 10.0

  • Universal Windows Platform 10.0

所有平臺(tái)的二進(jìn)制文件都是由一個(gè)VS 2017項(xiàng)目來(lái)構(gòu)建的。您需要使用VS 2017來(lái)構(gòu)建或者修正FluentFTP。


 使用例子

//創(chuàng)建一個(gè)FTP客戶端

FtpClient client = new FtpClient(“123.123.123.123”);

 

//如果您沒(méi)有指定登錄的憑證,我們將使用匿名用戶賬戶

client.Credentials = new NetworkCredential(“david”,”pass123”);

 

//開(kāi)始連接到服務(wù)器

client.Connect();

 

//獲得一個(gè)在“/htdocs”目錄下的文件和文件夾的列表

foreach(FtpListItem item in client.GetListing(“/htdocs”)){

    //如果這個(gè)是一個(gè)文件

    if(item.Type == FtpFileSystemObjectType.File){

        //獲得這個(gè)文件的大小

        long size = client.GetFileSize(item.FullName);

    }

 

    //獲得文件或者文件夾的修改日期和時(shí)間

    DateTime time = client.GetModifiedTime(item.FullName);

 

    //計(jì)算文件在服務(wù)器端的哈希值(默認(rèn)的算法)

    FtpHash hash = client.GetHash(item.FullName);

}

 

//上傳一個(gè)文件

client.UploadFile(@”C:\MyVideo.mp4”,”/htdocs/MyVideo.mp4”);

 

//重命名這個(gè)上傳的文件

client.Rename(“/htdocs/MyVideo.mp4”,”/htdocs/MyVideo_2.mp4”);

 

//下載這個(gè)文件

client.DownloadFile(@”C:\MyVideo_2.mp4”,”/htdocs/MyVideo_2.mp4”);

 

//刪除文件

client.deleteFile(“/htdocs/MyVideo_2.mp4”);

 

//遞歸地刪除一個(gè)文件夾

client.deleteDirectory(“/htdocs/extras/”);

 

//檢查文件是不是存在

if(client.FileExists(“/htdocs/big2.txt”)){}

 

//檢查一個(gè)文件夾是不是存在

if(client.DirectoryExists(“/htdocs/extras/”)){}

 

//上傳一個(gè)文件,并且如果失敗,在失敗之前會(huì)重新嘗試三次

client.RetryAttempts=3;

 

client.UploadFile(@”C:\MyVideo.mp4”,”/htdocs/big.txt”,FtpExists.Overwrite,false,FtpVerify.Retry);

 

//斷開(kāi)連接!再見(jiàn)~

client.Disconnect();


 Powershell

你可以使用FluentFTP將文件從Powershell腳本傳輸?shù)紽TP服務(wù)器。開(kāi)始:

  1. Powershell中,按照它的報(bào)告下載所有的文件

  2. 將內(nèi)容放入C:\scripts或您選擇的任何的文件夾中

  3. 在Powershell中運(yùn)行這個(gè)命令,使FluentFTP函數(shù)可用:

>. C:\scripts\FluentFTP.ps1 #Makes functions callable from PowerShell scripts
  1. 運(yùn)行你需要的命令?。ㄏ旅娼o出命令示例)

> Show-FtpFile -Site ftp.mysite.com -User bob -Password secure -FtpDirectory pub -FtpFileName "text*"

> Rename-File -Site ftp.mysite.com -User bob -Password secure -FtpDirectory pub -oldName "Readme.txt -newName Readme.done"

> Send-FtpFile -Site ftp.mysite.com -User bob -Password secure -FtpDirectory pub -fileName "Read*"

> Get-FtpFile -Site ftp.mysite.com -User bob -Password secure -FtpDirectory pub -ftpfileName "Read*"

> Remove-FtpFile -Site ftp.mysite.com -User bob -Password secure -FtpDirectory pub -ftpfileName "Read*"

在Powershell中運(yùn)行以下命令可以打印出每個(gè)命令的幫助:

> get-help -full Show-FtpFile

> get-help -full Rename-FtpFile

> get-help -full Send-FtpFile

> get-help -full Get-FtpFile

> get-help -full Remove-FtpFile


 文檔

  • API 文檔

  1. 連接(Connection)

  2. 服務(wù)器(Server)

  3. 文件夾清單列表(Directory Listing)

  4. 文件傳輸(File Transfer)

  5. 文件管理(File Management)

  6. 文件權(quán)限(FIle Permissions)

  7. 文件哈希(File Hashing)

  8. 工具(Utilities)

  9. 日志(Logging)

  • 設(shè)置

  1. FTP設(shè)置(FTP Settings)

  2. 顯式的FTP設(shè)置(Active FTP Settings)

  3. FTPS設(shè)置(FTPS Setting)

  4. 文件列表化設(shè)置(File Listing Settings)

  5. 文件傳輸設(shè)置(File Transfer Settings)

  6. 超時(shí)設(shè)置(Timeout Settings)

  7. Socket連接設(shè)置(Socket Settings)

  • FTP支持表

  • 例子

  • 發(fā)布日志

  • 相關(guān)注釋


 常見(jiàn)問(wèn)題

注:檢查這些常見(jiàn)問(wèn)題和已經(jīng)解決的常見(jiàn)問(wèn)題

日志相關(guān)的常見(jiàn)問(wèn)題

  • 如何在調(diào)試時(shí)追蹤FTP命令?

  • 如何在調(diào)試記錄所有的FTP命令? 

  • 如何將關(guān)鍵錯(cuò)誤記錄到文件中?

  • 如何禁用函數(shù)調(diào)用的日志記錄?

  • 如何中日志中省略掉敏感的信息?

  • 如何使用像NLog這樣的第三方日志記錄框架?

連接相關(guān)的常見(jiàn)問(wèn)題

  • 如何自動(dòng)檢測(cè)正確的連接設(shè)置?

  • 如何自動(dòng)連接到FTP或FTPS服務(wù)器?

  • 如何連接SSL/TLS?如何使用FTPS?

  • 如何在使用FTPS時(shí)驗(yàn)證服務(wù)器的證書?

  • 如何使用SSL/TLS連接到Azure?

  • 如何連接FTPS,然后切換回純文本(Plaintext)的FTP?

  • 如何連接SFTP?

  • 如何中使用匿名的FTP賬戶登錄?

  • 如何使用FTP代理登錄?

  • 如何檢測(cè)正在連接的服務(wù)器的類型?

  • 如何使用客戶端證書登入FTPS?

  • 如何從一個(gè)文件捆綁X509證書?

文件傳輸?shù)某R?jiàn)問(wèn)題

  • 如何追蹤文件的傳輸進(jìn)度?

  • 如何上傳動(dòng)態(tài)創(chuàng)建的數(shù)據(jù)?

  • 如何下載數(shù)據(jù)而不將其保存到磁盤?

  • 如何繼續(xù)下載一個(gè)文件?

  • 如何繼續(xù)上傳一個(gè)文件?

  • 如何控制上傳和下載的速度?

  • 如何驗(yàn)證文件的哈希值/校驗(yàn)和,如果校驗(yàn)和不匹配,如何重試?

  • 如何追加到一個(gè)文件?

  • 如何使用低級(jí)的(low-level)API下載文件?

  • 如果我的服務(wù)器不支持UTF-8,如何上傳/下載Unicode文件名的文件?

文件管理的常見(jiàn)問(wèn)題

  • GetListing()如何在內(nèi)部工作?

  • GetListing()如何返回一個(gè)遞歸的文件列表?

  • 支持哪種散列命令?

Misc的常見(jiàn)問(wèn)題

  • EnableThreadSafeDataConnections做什么?

  • 如何對(duì)FluentFTP做一些修改?

  • 如何提交一個(gè)拉取請(qǐng)求(a pull reqest)?

一些非常常見(jiàn)的問(wèn)題

  • 無(wú)法從傳輸連接讀取數(shù)據(jù):遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉了現(xiàn)有連接

  • 嘗試從套接字流(the socket stream)讀取數(shù)據(jù)時(shí)超時(shí)

  • FTPS不能在Linux上工作,因?yàn)樗恢С諷SL會(huì)話恢復(fù)

常見(jiàn)問(wèn)題

  • 我在登陸時(shí)發(fā)生錯(cuò)誤,但是我可以在Firefox/Filezilla中正常登陸

  • 在Visual Studio 2010中Fluent安裝失?。骸癝ystem.Runtime”已經(jīng)為“FluentFTP”定義了一個(gè)依賴項(xiàng)

  • 上傳一個(gè)帶有特殊字符的文件,像是“Caffè.png”,在FTP服務(wù)器上,它表現(xiàn)為“Caff?.png”。這個(gè)服務(wù)器只支持ASCII,但是這個(gè)“è”是ASCII。FileZilla可以上傳這個(gè)文件,并且沒(méi)有任何問(wèn)題

  • 如何文件名中含有俄文字母,我無(wú)法刪除這個(gè)文件。但是FileZilla可以刪除這個(gè)文件,并且沒(méi)有問(wèn)題

  • 我總是在我的Azure WebApp中發(fā)生TimeoutException異常

  • 許多的命令無(wú)法在Windows CE上正常工作

  • 使用OpenWrite/OpenAppend成功傳輸單個(gè)文件后,后續(xù)文件失敗,出現(xiàn)一些隨機(jī)錯(cuò)誤,如“格式錯(cuò)誤的PASV響應(yīng)”

  • 在FTPS的登入期間,SSL協(xié)商非常緩慢


 API

FtpClient類的全部的API文檔都是用來(lái)處理所有的FTP/FTPS功能。

注:所有的方法都支持同步和異步的版本。只需在.NET 4.5+的版本中,為Async/await語(yǔ)的添加“Async”后綴,或者在.NET 4.0及以下版本的方法中添加“Begin”/“End”的前綴。

連接

  • new FtpClient() - 創(chuàng)建并返回一個(gè)新的FTP客戶端實(shí)例。

  • Host - FTP服務(wù)器的IP地址或者是主機(jī)名稱。是必須的。

  • Port - FTP連接的端口。默認(rèn)為:自動(dòng)(依據(jù)FTPS的配置config為21或者是990端口)

  • Credentials - FTP的所使用的用戶名稱和密碼。必須是在服務(wù)器上注冊(cè)的有效的用戶賬戶。默認(rèn)為anonymous/anonymous

  • Connect() - 連接到FTP服務(wù)器(如果配置了的情況下會(huì)使用TLS/SSL)。

  • Disconnect() - 立即關(guān)閉與服務(wù)器的FTP連接。

  • AutoDetect() - 自動(dòng)發(fā)現(xiàn)FTP連接的設(shè)置并且返回這些連接的配置文件。

  • AutoConnect() - 自動(dòng)發(fā)現(xiàn)FTP連接的設(shè)置并且使用這些配置去連接服務(wù)器。

  • Excute() - 執(zhí)行自定義或不支持的命令。

  • IsConnected - 檢查連是否仍然是活動(dòng)的。

  • IsClose - 檢查此控制連接是否為克隆。默認(rèn)為:false

  • LastReply - 返回從服務(wù)器接收到的最后一個(gè)FtpReply。

服務(wù)器

  • ServerType - 獲得我們所連接的FTP服務(wù)器軟件的類型,返回值為FtpServer枚舉類型。請(qǐng)參閱受支持的FTP服務(wù)器列表。默認(rèn)值為FtpServer.Unknown

  • ServerOS - 獲得我們所連接的FTP服務(wù)器的操作系統(tǒng)的軟件類型,返回值為FtpOS枚舉類型。請(qǐng)參閱支持的操作系統(tǒng)的類型列表。默認(rèn)值為FtpOS.Unknown

  • SystemType - 獲取我們所連接的系統(tǒng)/服務(wù)器的類型。

  • Capabilities - 獲取服務(wù)器的性能(由標(biāo)志位標(biāo)識(shí))。

  • HasFeature() - 檢查服務(wù)器是不是支持某個(gè)特定的特性(FtpCapability)。

目錄清單

  • GetListing() - 獲得一個(gè)給定的文件夾的目錄清單。添加FtpListOption.Recursive來(lái)遞歸地列出所有子目錄的目錄清單。每一個(gè)文件或者文件夾返回一個(gè)帶有所有可用屬性集合的FtpListItem。每一個(gè)FtpListItem包含:

  1. Type:對(duì)象的類型(文件、目錄或鏈接)。

  2. Name:對(duì)象的名稱(去除路徑)。

  3. FullName:對(duì)象的完整文件路徑。如果文件名看上去是錯(cuò)誤的,那么請(qǐng)選擇正確的編碼。

  4. created:對(duì)象的創(chuàng)建日期/時(shí)間。如果服務(wù)器沒(méi)有提供這個(gè)值,默認(rèn)值為DateTime.MinValue。

  5. Modified:對(duì)象的最近一次的修改日期/時(shí)間。如果您獲得了一個(gè)不正確的值,那么嘗試添加FtpListOption.Modify標(biāo)志位來(lái)使用另外一種MDTM命令的方式加載對(duì)象的修改時(shí)間。如果服務(wù)器沒(méi)有提供這個(gè)值,默認(rèn)值為DateTime.MinValue

  6. Size:文件的字節(jié)大小。如果您獲得了一個(gè)不正確的值,那么嘗試添加FtpListOption.Size標(biāo)志位來(lái)使用另外一種SIZE命令的方式加載文件的大小。如果服務(wù)器沒(méi)有提供這個(gè)值,默認(rèn)值為0。

  7. LinkTarget:連接指向的完整文件路徑。僅為符號(hào)連接填充。

  8. LinkObject:連接指向的文件/文件夾。在FtpListOption.DerefLink標(biāo)志位被使用的時(shí)候,僅用于符號(hào)連接填充。

  9. SpecialPermissions:獲得特殊的權(quán)限,比如Stiky、SUID和SGID。

  10. Chmod:對(duì)象的CHMOD權(quán)限。例如644或者755。如果服務(wù)器沒(méi)有提供這個(gè)值,默認(rèn)值為0。

  11. OwnerPermissions:用戶的權(quán)限?!皉”、“w”、“x”的任意組合(使用FtpPermission枚舉)。如果服務(wù)器沒(méi)有提供這個(gè)值,默認(rèn)值為FtpPermission.None

  12. GroupPermissions:組的權(quán)限?!皉”、“w”、“x”的任意組合(使用FtpPermission枚舉)。如果服務(wù)器沒(méi)有提供這個(gè)值,默認(rèn)值為FtpPermission.None

  13. OtherPermissions:其他權(quán)限?!皉”、“w”、“x”的任意組合(使用FtpPermission枚舉)。如果服務(wù)器沒(méi)有提供這個(gè)值,默認(rèn)值為FtpPermission.None。

  14. RawPermissions:為此對(duì)象接收的原始權(quán)限字符串。如果其他的權(quán)限為空或者無(wú)效,請(qǐng)使用此屬性。

  15. Input:服務(wù)器為此對(duì)象返回的原始字符串。如果正確解析了上述屬性,則有助于調(diào)試。

  • GetNameListing() - 使用NLST命令返回給定目錄中的文件路徑列表的簡(jiǎn)單命令。

  • GetObjectInfo() - 獲取單個(gè)文件或者目錄的FtpListItem信息。它包含了類型、創(chuàng)建日期、修改日期、文件大小、權(quán)限/chmod和連接目標(biāo)(如果有的話)。

文件傳輸

高級(jí)API:

  • Upload() - 上傳一個(gè)流或者byte[]到服務(wù)器。如果成功的話就返回為true,如果失敗或者文件不存在那么返回為false。對(duì)于關(guān)鍵的錯(cuò)誤會(huì)拋出異常。支持非常大的文件上傳,因?yàn)樗纳蟼魇怯脭?shù)據(jù)塊來(lái)實(shí)現(xiàn)的。

  • Download() - 從服務(wù)器下載一個(gè)文件到流中或者byte[]中。如果成功的話就返回為true,如果失敗或者文件不存在那么返回為false。對(duì)于關(guān)鍵的錯(cuò)誤會(huì)拋出異常。支持非常大的文件下載,因?yàn)樗南螺d是用數(shù)據(jù)塊來(lái)實(shí)現(xiàn)的。

  • UploadFile() - 從本地的文件系統(tǒng)上傳一個(gè)文件到服務(wù)器上。使用FtpExists.Append來(lái)恢復(fù)繼續(xù)一個(gè)部分的上傳。如果成功的話就返回為true,如果失敗或者文件不存在那么返回為false。對(duì)于關(guān)鍵的錯(cuò)誤會(huì)拋出異常。支持非常大的文件上傳,因?yàn)樗纳蟼魇怯脭?shù)據(jù)塊來(lái)實(shí)現(xiàn)的。可以可選地驗(yàn)證一個(gè)文件的哈希值,并且在哈希匹配失敗的時(shí)候重新嘗試傳輸。

  • DownloadFile() - 從服務(wù)器上下載一個(gè)文件到本地的文件系統(tǒng)。使用FtpExists.Append來(lái)恢復(fù)繼續(xù)一個(gè)部分的下載。如果成功的話就返回為true,如果失敗或者文件不存在那么返回為false。對(duì)于關(guān)鍵的錯(cuò)誤會(huì)拋出異常。支持非常大的文件下載,因?yàn)樗南螺d是用數(shù)據(jù)塊來(lái)實(shí)現(xiàn)的??梢钥蛇x地驗(yàn)證一個(gè)文件的哈希值,并且在哈希匹配失敗的時(shí)候重新嘗試傳輸。

  • UploadFiles() - 從本地的文件系統(tǒng)上傳多個(gè)文件到服務(wù)器上的單個(gè)文件夾中。返回上傳的文件的數(shù)目。跳過(guò)上傳的文件不會(huì)被計(jì)數(shù)。在文件上傳的過(guò)程中,用戶可以自定義處理捕獲的異常錯(cuò)誤(忽略/終止/拋出)??梢钥蛇x地驗(yàn)證一個(gè)文件的哈希值,并且在哈希匹配失敗的時(shí)候重新嘗試傳輸。比使用UploadFile()上傳多次的速度快。

  • DownloadFiles() - 從服務(wù)器上下載多個(gè)文件到本地文件系統(tǒng)的一個(gè)文件夾中。返回下載的文件的數(shù)目。跳過(guò)下載的文件不會(huì)被計(jì)數(shù)。在文件下載的過(guò)程中,用戶可以自定義處理捕獲的異常錯(cuò)誤(忽略/終止/拋出)??梢钥蛇x地驗(yàn)證一個(gè)文件的哈希值,并且在哈希匹配失敗的時(shí)候重新嘗試傳輸。

低級(jí)API:

  • OpenRead() - (最好使用Download()來(lái)下載文件為一個(gè)Stream或者一個(gè)byte[]打開(kāi)一個(gè)流來(lái)讀取指定的文件。返回一個(gè)標(biāo)準(zhǔn)stream。在你成功的傳輸文件之后,請(qǐng)調(diào)用GetReply()來(lái)讀取服務(wù)器發(fā)送的“OK”指令,并防止套接字上的數(shù)據(jù)過(guò)時(shí)。

  • OpenWrite() - (最好使用Upload()來(lái)上傳一個(gè)Stream或者一個(gè)byte[]打開(kāi)一個(gè)流來(lái)寫入指定的文件。返回一個(gè)標(biāo)準(zhǔn)stream,任何寫入的數(shù)據(jù)都將覆蓋整個(gè)文件,如果文件不存在,那么會(huì)被創(chuàng)建。在你成功的傳輸文件之后,請(qǐng)調(diào)用GetReply()來(lái)讀取服務(wù)器發(fā)送的“OK”指令,并防止套接字上的數(shù)據(jù)過(guò)時(shí)。

  • OpenAppend() - (最好使用帶有FtpExists.Append標(biāo)志的Upload()來(lái)上傳一個(gè)Stream或者byte[])打開(kāi)一個(gè)流來(lái)附加到指定的文件。返回一個(gè)標(biāo)準(zhǔn)stream,任何寫入的數(shù)據(jù)都將附加到文件數(shù)據(jù)的尾部。在你成功的傳輸文件之后,請(qǐng)調(diào)用GetReply()來(lái)讀取服務(wù)器發(fā)送的“OK”指令,并防止套接字上的數(shù)據(jù)過(guò)時(shí)。

文件管理

工作目錄(相對(duì)的路徑相對(duì)于當(dāng)前的工作目錄):

  • GetWorkingDirectory() - 獲取當(dāng)前工作目錄的完整路徑。

  • SetWorkingDirectory() - 設(shè)置當(dāng)前的工作目錄的完整路徑。所有的相對(duì)路徑都相對(duì)于當(dāng)前工作目錄。 

目錄:

  • DirectoryExists() - 檢查服務(wù)器上一個(gè)目錄是不是存在。

  • createDirectory() - 在服務(wù)器上創(chuàng)建一個(gè)文件目錄。如果不是空的,那么遞歸刪除所有子目錄和文件。

  • deleteDirectory() - 刪除服務(wù)器上指定的目錄。如果不是空的,則遞歸刪除所有子目錄和文件。

  • MoveDirectory() - 將目錄從服務(wù)器上的一個(gè)位置移動(dòng)到另一個(gè)位置。如果FtpExists.OverWrite標(biāo)志被使用的話,則在移動(dòng)之前刪除目標(biāo)目錄。只對(duì)關(guān)鍵錯(cuò)誤拋出異常。

文件:

  • FileExists() - 檢查服務(wù)器上是否存在文件。

  • deleteFile() - 刪除服務(wù)器上的指定文件。

  • MoveFile() - 將文件從服務(wù)器上的一個(gè)目錄移動(dòng)到另一個(gè)目錄。如果FtpExists.OverWrite標(biāo)志被使用的話,則在移動(dòng)之前刪除目標(biāo)文件。只對(duì)關(guān)鍵錯(cuò)誤拋出異常。

  • Rename() - 重命名服務(wù)器上的文件/文件夾名稱。在大多數(shù)情況下不應(yīng)該使用的低級(jí)方法,而是應(yīng)該使用MoveFile()MoveDirectory()來(lái)重命名文件/文件夾。如果源文件(被重命名)的目標(biāo)不存在,或者目標(biāo)(要修改名稱的)已經(jīng)存在,則拋出異常。

  • GetModifiedTime() - 獲取文件或文件夾的最后的修改日期/時(shí)間。結(jié)果可能在服務(wù)器時(shí)區(qū)、本時(shí)或者是UTC,這取決于type參數(shù)。

  • SetModifiedTime() - 修改文件或文件夾的最后修改日期/時(shí)間。根據(jù)輸入type參數(shù)的不同,輸入可以在服務(wù)器時(shí)區(qū)、本地時(shí)區(qū)或者UTC中。

  • GetFileSize() - 獲取文件的大小(以字節(jié)為單位),如果未找到則為-1。

  • DereferenceLink() - 遞歸地接觸對(duì)一個(gè)符號(hào)鏈接的引用,并且如果找到,則返回完整路徑。在放棄這個(gè)操作之前,我們通過(guò)MaximumDereferenceCount屬性來(lái)控制遞歸的深度。

文件權(quán)限

大多數(shù)的服務(wù)器支持的標(biāo)準(zhǔn)命令

  • GetChmod() - 獲取文件/文件夾的CHMOD權(quán)限,如果沒(méi)有找到則為0。

  • GetFilePermissions() - 以帶有所有“權(quán)限”屬性的集合的FtpListItem對(duì)象的形式,獲取給定文件/文件夾的權(quán)限,如果沒(méi)有找到的話,就返回為null。

只支持安裝并啟用了CHMOD擴(kuò)展的UNIX FTP服務(wù)器

  • Chmod() - 通過(guò)給出CHMOD的值,修改給定的文件/文件夾的權(quán)限。

  • SetFilePermissions() - 通過(guò)給出的分離的擁有者/組/其他的值,修改給定的文件/文件夾的權(quán)限(FtpPermission枚舉)。

文件哈希

(筆記:高級(jí)的文件傳輸API支持在上傳/下載之后自動(dòng)進(jìn)行文件哈希)

大多數(shù)的服務(wù)器支持的標(biāo)準(zhǔn)命令

  • HashAlgorithms - 如果服務(wù)器有的話,獲取服務(wù)器支持的散列類型(由標(biāo)志位標(biāo)識(shí))。

  • GetHash() - 使用當(dāng)前選定的散列算法獲取服務(wù)器上對(duì)象的散列值。支持的算法可用于HashAlgorithms屬性。您應(yīng)該確認(rèn)它不等于FtpHashAlgorithms.NONE(這意味著服務(wù)器不支持HASH命令)。

  • GetHashAlgorithm() - 為HASH指令查詢服務(wù)器當(dāng)前所選擇的哈希算法。

  • SetHashAlgorithm() - 為HASH指令選擇一個(gè)哈希算法,并將這個(gè)選擇的算法存儲(chǔ)在服務(wù)器上。

僅由某些服務(wù)器支持的非標(biāo)準(zhǔn)的命令。查看更多

  • GetChecksum() - 使用服務(wù)器支持的校驗(yàn)和方法(如果有的話)檢索給定文件的校驗(yàn)和。所使用的算法以下面的順序:HASH、MD5、XMD5、XSHA1、XSHA256、XSHA512、XCRC。

  • GetMD5() - 檢索給定文件的MD5校驗(yàn)和(如果服務(wù)器支持)。

  • GetXMD5() - 檢索給定文件的MD5校驗(yàn)和(如果服務(wù)器支持)。

  • GetXSHA1() - 檢索給定文件的SHA1校驗(yàn)和(如果服務(wù)器支持)。

  • GetXSHA256() - 檢索給定文件的SHA256校驗(yàn)和(如果服務(wù)器支持)。

  • GetXSHA521() - 檢索給定文件的SHA512校驗(yàn)和(如果服務(wù)器支持)。

  • GetXCRC() - 檢索給定文件的CRC32校驗(yàn)和(如果服務(wù)器支持)。

工具

請(qǐng)導(dǎo)入FluentFTP來(lái)使用這些擴(kuò)展方法,或者直接在FtpExtensions類中訪問(wèn)它們。

  • GetFtpPath(path) - 將指定的本地文件/目錄路徑轉(zhuǎn)換為有效的FTP文件系統(tǒng)路徑。

  • GetFtpPath(path,segments) - 通過(guò)將指定的段附加到此字符串來(lái)創(chuàng)建有效的FTP路徑。

  • GetFtpDirectoryName(path) - 獲取給定文件路徑的父目錄路徑。

  • GetFtpFileName(path) - 從路徑獲取文件名和擴(kuò)展名(如果擴(kuò)展名存在的話)。

  • GetFtpDate(date,styles) - 嘗試將字符串FTP日期表示形式轉(zhuǎn)換為日期時(shí)間對(duì)象。

  • FileSizeToString(bytes) - 將文件大小(以字節(jié)為單位)轉(zhuǎn)換為字符串表示形式(例如,12345轉(zhuǎn)換為12.3 KB)。

請(qǐng)直接訪問(wèn)FtpClient類下的這些靜態(tài)方法。

  • GetPublicIP() - 使用Ipify服務(wù)計(jì)算您電腦的公共IP地址。如果你在連接在路由器網(wǎng)絡(luò)中或沒(méi)有一個(gè)靜態(tài)的IP地址。

日志

有關(guān)日志和調(diào)試的幫助,請(qǐng)參閱FAQ的條目。

  • client.OnLogEvent - FtpClient的一個(gè)屬性。分配給這個(gè)屬性一個(gè)回調(diào)函數(shù),那么這個(gè)回調(diào)會(huì)在每次記錄信息的時(shí)候被觸發(fā)。

  • FtpTrace.LogFunctions - 在記錄日志的時(shí)候,是否記錄高級(jí)函數(shù)的調(diào)用。默認(rèn)值為:true

  • FtpTrace.LogIP - 在記錄日志的時(shí)候,是否將服務(wù)器IP地址進(jìn)行記錄。默認(rèn)值為:true

  • FtpTrace.LogUserName - 在記錄日志的時(shí)候,是否將用戶的名稱進(jìn)行記錄。默認(rèn)值為:true

  • FtpTrace.LogPassword - 在記錄日志的時(shí)候,是否將密碼進(jìn)行記錄。默認(rèn)值為:false

  • FtpTrace.LogPrefix - 所有的日志信息之前都使用“FluentFTP”前綴。默認(rèn)值為:false

  • FtpTrace.WriteLine - 將消息或錯(cuò)誤記錄到所有已注冊(cè)的偵聽(tīng)器。

僅.NET Standard可用

  • FtpTrace.LogToConsole - 是否應(yīng)該將FTP通信(communication)記錄到控制臺(tái)(Console)。默認(rèn)值為:false

  • FtpTrace.LogToFile - 是否設(shè)置一個(gè)文件的路徑,來(lái)將所有的FTP通信(communication)來(lái)附加到這個(gè)文件中。默認(rèn)值為:false

僅.NET Framework可用

  • FtpFrace.FlushOnWrite - 是否在寫入每個(gè)命令后刷新跟蹤偵聽(tīng)器。默認(rèn)值為:true

  • FtpFrace.AddListener - 向系統(tǒng)中(指的是FluentFTP)添加一個(gè)日志處理程序。了解更多

  • FtpFrace.RemoveListener - 從系統(tǒng)中移除一個(gè)日志處理程序。

設(shè)置

FTP設(shè)置

可以自動(dòng)檢測(cè)服務(wù)器上的FTP連接設(shè)置。

  • DataConnectionType - 設(shè)置連接是活動(dòng)還是被動(dòng)的鏈接。默認(rèn)值為:FtpDataConnectionType.AutoPassive(嘗試EPSV,然后PASV,最后就放棄)

  • Encoding - 與服務(wù)器進(jìn)行通信的時(shí)候所使用的的文本編碼(ASCII或者UTF8)。ASCII是默認(rèn)的值,但是在連接的時(shí)候,如果服務(wù)器支持的話,我們將切換到UTF8編碼。手動(dòng)設(shè)置設(shè)置這個(gè)值的話講覆蓋自動(dòng)檢測(cè)。默認(rèn)值為:Auto。

  • InternetProtocolVersions - 在進(jìn)行連接的時(shí)候使用IPV4和/還是IPV6。在名稱解析期間返回的所有地址都將被嘗試,直到連接成功為止。默認(rèn)值為:Any。

  • UngracefullDisconnection - 服務(wù)器在斷開(kāi)連接的時(shí)候是否發(fā)送QUIT。默認(rèn)值為:false

  • SendHost - 在我手之后立刻發(fā)送HOST指令。當(dāng)你使用共享的主機(jī)并且你需要通知你想要連接到那個(gè)主機(jī)的域的情況下,這個(gè)是非常有用的。默認(rèn)值為:false

  • SendHostDomain - 控制哪一個(gè)域要被發(fā)送HOST命令。如果這個(gè)值為null,那么FTP客戶端的主機(jī)參數(shù)將會(huì)被發(fā)送。默認(rèn)值為:nulll

主動(dòng)的FTP設(shè)置

  • ActivePorts - 設(shè)置嘗試給主動(dòng)的FTP連接所使用的端口,如果為null就會(huì)自動(dòng)選擇一個(gè)端口。默認(rèn)值為:null。

  • AddressResolver - 用于解析本地地址的委托,用于活動(dòng)數(shù)據(jù)連接。如果你在路由器的網(wǎng)絡(luò)下,你可以使用這個(gè),但是端口轉(zhuǎn)發(fā)配置為將端口從路由器轉(zhuǎn)發(fā)到內(nèi)部IP。在這種情況下,我們需要發(fā)送路由器的IP而不是內(nèi)部IP。

FPTS設(shè)置

請(qǐng)?jiān)谡{(diào)用Connect()之前設(shè)置這些配置??梢?/em>自動(dòng)地檢測(cè)這些工作在你服務(wù)器上的FTPS連接設(shè)置。

  • EncrytionMode - 要使用的SSL類型,或者為null。顯式是TLS,隱式是SSL。默認(rèn)值為FtpEncryptionMode.None

  • DataConnctionEncryption - 指示是否應(yīng)加密數(shù)據(jù)通道傳輸。默認(rèn)值為:true。

  • SslProtocols - 要使用的加密協(xié)議。默認(rèn)值為SslProtocols.Default

  • SslBuffering - 是否使用SSL緩沖來(lái)加速FTP操作期間的數(shù)據(jù)傳輸。如果您遇到FTPS/SSL文件傳輸?shù)碾S機(jī)問(wèn)題,請(qǐng)關(guān)閉此選項(xiàng)。默認(rèn)值為:FtpsBuffering.Auto

  • ClientCertificates - 在SSL身份驗(yàn)證過(guò)程中使用的X509客戶端證書。了解更多

  • ValidateCertificate - 來(lái)驗(yàn)證SSL證書的事件。如果不處理這個(gè)事件,并且在驗(yàn)證證書的時(shí)候出現(xiàn)錯(cuò)誤,那么連接將被終止。

  • ValidateAnyCertificate - 接受從服務(wù)器接收到的任何SSL證書,并使用ValidateCertificate回調(diào)來(lái)跳過(guò)執(zhí)行驗(yàn)證。對(duì)于Powershell用戶是很有用的。默認(rèn)值為:false。

  • ValidateCertificateRevocation - 指示在身份驗(yàn)證期間是否檢查了證書撤銷列表。在需要維護(hù)證書鏈的驗(yàn)證(the certificate chain validation),但跳過(guò)證書的撤銷檢查(certificate revocation check)時(shí)非常有用。默認(rèn)值為:true。

  • PlainTextEncryption - 使用CCC命令,來(lái)使得在連接FTPS后立即禁用加密。當(dāng)你有一個(gè)FTP防火墻需要使用純文本的FTP的時(shí)候,這個(gè)是很有用的,但是你的服務(wù)器要授權(quán)FTPS的連接。默認(rèn)值為:false。

文件清單列表設(shè)置

  • ListingParser - 要使用的文件清單列表解析器?;诜?wù)器類型會(huì)自動(dòng)的計(jì)算,除非被更改。文件列表解析在2017年得到了改進(jìn),但是要使用舊的解析例程,請(qǐng)使用FtpParser.Legacy。

  • ListingCulture - 用于解析文件清單的區(qū)域性。默認(rèn)值為CultureInfo.InvariantCulture。

  • TimeConversion - 控制如何轉(zhuǎn)換服務(wù)器返回的時(shí)間戳。默認(rèn)設(shè)置假定所有服務(wù)器都返回UTC。默認(rèn)值為DateTimeStyles.AssumeUniversal。

  • TimeOffset - 服務(wù)器和客戶機(jī)之間的時(shí)差,以小時(shí)為單位。如果服務(wù)器位于阿姆斯特丹,而您在洛杉磯,則時(shí)差為9小時(shí)。默認(rèn)值為:0。

  • RecursiveList - 如果你的服務(wù)器支持一個(gè)遞歸的LIST命令,使用預(yù)定義的邏輯進(jìn)行檢查。如果您確定您的服務(wù)器支持遞歸列表,請(qǐng)將此設(shè)置為true。(LIST -R

  • BulkListing - 如果為真,則通過(guò)一次讀取文件清單的多行來(lái)提高GetListing的性能。如果為false,則GetListing將逐行讀取文件清單。如果GetListing在您的服務(wù)器上會(huì)有問(wèn)題,那么請(qǐng)?jiān)O(shè)置為false。默認(rèn)值為:true。

  • BulkListingLength - 在GetListing期間要讀取的字節(jié)。只有在BulkListing為true的時(shí)候才會(huì)被執(zhí)行。默認(rèn)值為:128。

  • MaximumDereferenceCount - 在放棄之前,DereferenceLink()將遵循的符號(hào)鏈接的最大遞歸深度。默認(rèn)值為:20。

文件傳輸設(shè)置

  • RetryAttempts - 在下載或上傳過(guò)程中發(fā)生驗(yàn)證失敗時(shí)允許重試的次數(shù)。默認(rèn)值為:1。

  • TransferChunkSize - 在上傳/下載文件的時(shí)候所使用的塊的大?。ㄒ宰止?jié)為單位)。默認(rèn)值為:65536(65KB)。

  • UploadRateLimit - 上傳速度的限制(以kbyte/s為單位),在高級(jí)API中被使用。默認(rèn)值為:0(無(wú)限制)。

  • DownloadRateLimit - 下載速度的限制(以kbyte/s為單位),在高級(jí)API中被使用。默認(rèn)值為:0(無(wú)限制)。

  • UploadDataType - 上傳文件以ASCII模式還是二級(jí)制模式。默認(rèn)值為FtpDataType.Binary。

  • DownloadDataType - 下載文件以ASCII模式還是二級(jí)制模式。默認(rèn)值為FtpDataType.Binary。

  • NoopInterval - 在發(fā)送NOOP命令之間等待的時(shí)間(以毫秒為單位),以便在長(zhǎng)時(shí)間的文件傳輸期間保持控制套接字處于活動(dòng)狀態(tài)。將這個(gè)間隔設(shè)置得太低會(huì)對(duì)性能產(chǎn)生負(fù)面影響。將這個(gè)間隔設(shè)置為0將完全禁用NOOP命令。如果在文件傳輸期間超時(shí),請(qǐng)減少此設(shè)置。請(qǐng)閱讀此屬性的建議值的PR說(shuō)明默認(rèn)值為:15000(15秒)。

超時(shí)設(shè)置

  • ConnectTimeout - 在放棄之前,等待連接成功的時(shí)間(單位毫秒)。默認(rèn)值為:15000(15秒)。

  • ReadTimeout - 在放棄之前,從底層流讀取數(shù)據(jù)的等待時(shí)間(單位毫秒)。默認(rèn)值為:15000(15秒)。

  • DataConnectionConnectTimeout - 在放棄之前,等待數(shù)據(jù)連接建立的時(shí)間(單位毫秒)。默認(rèn)值為:15000(15秒)。

  • DataConnectionReadTimeout - 在放棄之前,等待服務(wù)器通過(guò)數(shù)據(jù)通道發(fā)送數(shù)據(jù)的時(shí)間(單位毫秒)。默認(rèn)值為:15000(15秒)。

  • SocketPollInterval - 在調(diào)用套接字上的Poll()以測(cè)試連接之前,從上一次套接字活動(dòng)到開(kāi)始必須經(jīng)歷的時(shí)間(單位毫秒)。將這個(gè)間隔設(shè)置得太低會(huì)對(duì)性能產(chǎn)生負(fù)面影響。將此間隔設(shè)置為0將完全禁用輪詢(Poll)。默認(rèn)值為:15000(15秒)。

嵌套字(socket)設(shè)置

  • SocketKeepAlive - 設(shè)置SocketOption.KeepAlive在將來(lái)所有的流的套接字上使用。默認(rèn)值為:false

  • StaleDataCheck - 檢查在套接字上是不是有過(guò)時(shí)的數(shù)據(jù)(沒(méi)有被請(qǐng)求的數(shù)據(jù))。在某些情況下,控制連接可能會(huì)超時(shí),但是在服務(wù)器關(guān)閉連接之前,它可能會(huì)發(fā)送一個(gè)4xx的意外的響應(yīng),并且會(huì)以匯報(bào)導(dǎo)致同步的錯(cuò)誤。為了避免這個(gè)問(wèn)題,execute()方法在執(zhí)行命令之前檢查套接字上是否有可用的數(shù)據(jù)。默認(rèn)值為:true。

  • EnableThreadSafeDataConnections - 為每個(gè)文件的下載和上傳創(chuàng)建一個(gè)新的FTP連接。這是一種較慢但線程安全的方法,可使單個(gè)控制連接上的異步操作透明。如果FTP服務(wù)器每個(gè)用戶名只允許一個(gè)連接,則將此設(shè)置為false了解更多。默認(rèn)值為:false。


 FTP支持

映射表記錄了支持的FTP命令和相應(yīng)的API..

連接指令

指令

API

描述

HOST

SendHost和SendHsotDomain

在共享主機(jī)上標(biāo)識(shí)您的域

USER、PASS

Credentials

使用用戶名和密碼登錄

QUIT

Disconnect()

斷開(kāi)連接

PASV、EPSV、EPRT

DataConnectionType

被動(dòng)和主動(dòng)的FTP模式

FEAT

HasFeature()

獲取服務(wù)器支持的特性

SYST

GetSystem()

獲取服務(wù)器系統(tǒng)類型

OPTS UTF8 ON

Encoding

支持utf-8文件名

OPTS UTF8 OFF

Encoding,DisableUTF8()

禁用utf-8文件名

SUTH TLS

EncryptionMode

切換到TLS/FTPS

PBSZ、PROT

EncryptionMode和

DataConnectionEncryption

配置TLS/FTPS連接

CCC

PlainTextEncryption

切換到純文本FTP

PRET

Automatic

預(yù)傳輸(Pre-transfer)文件信息

TYPE A

UploadDataType和

DownloadDataType

使用ASCII編碼傳輸數(shù)據(jù)

TYPE I

UploadDataType和

DownloadDataType

使用二進(jìn)制編碼傳輸數(shù)據(jù)

 

文件管理命令

命令

API

描述

MLSD

GetListing()

獲得目錄的機(jī)器列表

LIST

使用FtpListOption.ForceList標(biāo)志位的GetListing()

獲取目錄文件列表

NLST

GetNameList()

使用FtpListOption.ForceNameList標(biāo)志位的GetListing()

獲取目錄名列表

LS

使用FtpListOption.UseLS標(biāo)志位的GetListing()

獲取目錄文件列表

STAT

使用FtpListOption.UnsStat標(biāo)志位的GetListing()

獲取目錄文件列表

MLST

GetObjectInfo()

獲得文件信息

DELE

deleteFile()

刪除一個(gè)文件

MKD

createDirectory()

創(chuàng)建一個(gè)目錄

SITE MKDIR

createDirectory()

服務(wù)器端遞歸創(chuàng)建一個(gè)目錄(ProFTPD)

RMD

deleteDirectory()

刪除一個(gè)目錄

SIT RMDIR

deleteDirectory()

服務(wù)器端遞歸刪除一個(gè)目錄(ProFTPD)

RMDA

deleteDirectory()

服務(wù)器端遞歸刪除一個(gè)目錄(Serv-U)

CWD

SetWorkingDirectory()

改變工作目錄

PWD

GetWorkingDirectory()

獲得工作目錄

SIZE

GetFileSize()

獲得文件的字節(jié)大小

MDTM

GetModifiedTime()

使用FtpListOption.Modify標(biāo)志位的GetListing()

GetObjectInfo()的dateModified

獲得文件的修改日期

MFMT

SetModifiedTime()

修改文件的修改日期

SITE CHMOD

Chmod()或者SetFilePermissions()

修改文件的權(quán)限

RNFR、RNTO

Rename()

MoveFile()

重命名一個(gè)文件或一個(gè)目錄

移動(dòng)一個(gè)文件和一個(gè)目錄

NOOP

Upload()

UploadFile()

Download()

DownloadFile()

在文件傳輸?shù)臅r(shí)候保持活動(dòng)狀態(tài)

 

文件哈希命令

命令

API

描述

HASH

GetHash()

獲取一個(gè)文件的哈希值

OPTS HASH

GetHashAlgorithm()/SetHashAlgorithm()

為哈希命令選擇一個(gè)哈希算法

MD5

GetChecksum()或GetMD5()

獲得一個(gè)文件的MD5哈希值

XMD5

GetChecksum()或GetXMD5()

獲得一個(gè)文件的MD5哈希值

XSHA1

GetChecksum()或GetXSHA1()

獲得一個(gè)文件的SHA-1哈希值

XSHA256

GetChecksum()或GetXSHA256()

獲得一個(gè)文件的SHA-256哈希值

XSHA512

GetChecksum()或GetXSHA512()

獲得一個(gè)文件的SHA-512哈希值

 


 常見(jiàn)問(wèn)題


 如何自動(dòng)檢測(cè)正確的鏈接設(shè)置?

使用下面的代碼:

FtpClient client = new FtpClient(hostname, username, password);//或者設(shè)置Host和Credentials

var profiles = client.AutoDetect();

//如果找到任何配置文件,將代碼打印到控制臺(tái)

if(profiles.Count > 0){

    var code = profiles[0].ToCode();

    Console.WriteLine(code);

}

一旦你找一個(gè)工作連接配置文件后,使用生成的代碼快速連接到你的FTP服務(wù)器。


如何自動(dòng)連接到FTP或FTPS服務(wù)器?

使用下面的代碼:

FtpClient client = new FtpClient(hostname, username, password);//或者設(shè)置Host和Credentials

client.AutoConnect();


 如何連接SSL/TLS?/如何使用FTPS?

使用下面的代碼:

FtpClient client = new FtpClient(hostname, username, password);//或者設(shè)置Host和Credentials


client.EncryptionMode = FtpEncryptionMode.Explicit;

client.SslProtocols = SslProtocols.Tls;

client.ValidateCertificate += new FtpSslValidation(OnValidateCertificate);

client.Connect();


void OnValidateCertificate(FtpClient control, FtpSslValidationEventArgs e){

    //在這里添加邏輯以測(cè)試證書是否有效

    e.Accept = true;

}

如果你連接到服務(wù)器有任何的問(wèn)題,嘗試使用其中之一:

讓操作系統(tǒng)選擇最高和最相關(guān)的TLS協(xié)議。

client.SslProtocols = Security.Authentication.SslProtocols.None;

防止操作系統(tǒng)使用在.NET Framework中有問(wèn)題的TLS 1.0。

client.SslProtocols = SslProtocols.Default | SslProtocols.Tls11 | SslProtocols.Tls12;

如果你在Linux上使用并且使用SSL/TLS連接失敗,很可能是這個(gè)問(wèn)題。


 如何在使用FTPS時(shí)驗(yàn)證服務(wù)器的證書?

方法一:如果SSL證書沒(méi)有錯(cuò)誤則進(jìn)行連接。

cleint.ValidanteCertificate += new FtpSslValidation(delegate (FtpClient c, FtpSslValidtionEventArgs e){

    if(e.PolicyErrors != System.Net.Security.SslPolicyErrors.None)

    {

        e.Accept = false;

    }

    else

    {

    e.Accept = true;

    }

});

方法二:如果證書與白名單證書匹配,則連接。

首先,您必須發(fā)現(xiàn)有效證書的字符串。使用此代碼將有效的證書字符串保存到文件中:

cleint.ValidanteCertificate += new FtpSslValidation(delegate (FtpClient c, FtpSslValidtionEventArgs e){

    File.WrtieAllText(@”c:\cert.txt”, e.Certificate.GetRawCertDataString());

});

最后,使用這個(gè)代碼檢查收到的證書是否與您信任的證書匹配:

string ValidCert = “<insert contents of cert.txt>”;

cleint.ValidanteCertificate += new FtpSslValidation(delegate (FtpClient c, FtpSslValidtionEventArgs e){

    if(e.PolicyErrors == SslPolicyErrors.None || e.Certificate.GetRawCertDataString() == ValidCert){

        e.Accept = true;

    }

    else

    {

        Throw new Exception(“Invalid certificate : ” + e.PolicyErrors);

    }

});


如何使用SSL/TLS連接到Azure?

假設(shè)您在Azure應(yīng)用程序服務(wù)實(shí)例上使用FTP發(fā)布服務(wù)。

如果您在連接Azure時(shí)遇到問(wèn)題,請(qǐng)確保您沒(méi)有“只使用FTPS”。根據(jù)Azure文檔,“僅支持FTPS”不支持TLS 1.0和1.1,這可能會(huì)在試圖將FluentFTP用于較舊版本的Windows時(shí)破壞連接。因此,當(dāng)您試圖連接到一個(gè)將會(huì)阻塞TLS 1.1的Azure FTP實(shí)例時(shí),連接將靜默地失敗,因?yàn)樗唤邮躎LS 1.2。

將設(shè)置更改為允許不安全的FTP之后,可以使用顯式和隱式SSL模式連接FTPS。


 如何連接FTPS,然后切換回純文本(Plaintext)的FTP?

當(dāng)你有一個(gè)FTP防火墻需要使用初文明的FTP的時(shí)候這是非常有用的。我們使用CCC命令指示服務(wù)器恢復(fù)到FTP。

在調(diào)用FtpClient類上的Connect()或任何其他方法之前設(shè)置此選項(xiàng)。

client.PlainTextEncryption = true;

如何連接SFTP?

SFTP不被支持,因?yàn)樗荢SH下的FTP,一個(gè)完全不一樣的協(xié)議。請(qǐng)使用SSH.NET


 如何中使用匿名的FTP賬戶登錄?/我在登錄的時(shí)候遇到錯(cuò)誤但是我可以在Firefox/Filezilla中正常登錄

不設(shè)置Credentials屬性,我們可以用匿名的身份登錄?;蛘吣梢允謩?dòng)指定以下內(nèi)容:

client.Credentials = new NetworkCredential("anonymous", "anonymous");

如何使用FTP代理登錄?

創(chuàng)建一個(gè)FtpClientHttpProxy或者FtpClientUserAtHostProxy的對(duì)象實(shí)例,然后按照往常一樣使用FTP的屬性和方法。


 如何追蹤文件的傳輸進(jìn)度?

所有的高級(jí)的方法都提供了一個(gè)progress的參數(shù),被使用來(lái)跟蹤上傳或者下載的進(jìn)度。

在使用之前,先創(chuàng)建一個(gè)回調(diào)的方法來(lái)提供給上傳/下載的方法。它將隨著FtpProgress對(duì)象被調(diào)用,其中包含傳輸?shù)陌俜直群透鞣N統(tǒng)計(jì)數(shù)據(jù)。

如果你創(chuàng)建在你WinForm程序的UI中,可以創(chuàng)建一個(gè)Minimum = 0并且Maximum = 100的ProgressBar。

使用異步的API:

//接受一個(gè)FtpProgress對(duì)象的回調(diào)方法

Progress<FtpProgress> progress = new Progress<FtpProgress>(x => {

    //當(dāng)進(jìn)度未知的時(shí)候,會(huì)收到-1

    if(x.Progress < 0)

   {

        progressBar.IsIndeterminate = true;

    }

    else

    {

        progressBar.IsIndeterminate = false;

        progressBar.Value = x;

    }

});

使用同步的API:

//接受一個(gè)FtpProgress對(duì)象的回調(diào)方法

Action<FtpProgress> progress = new Action<FtpProgress>(x => {

    //當(dāng)進(jìn)度未知的時(shí)候,會(huì)收到-1

    if(x.Progress < 0)

    {

        progressBar.IsIndeterminate = true;

    }

    else

    {

        progressBar.IsIndeterminate = false;

        progressBar.Value = x;

    }

});

現(xiàn)在要調(diào)用上傳/下載方法并提供您剛才創(chuàng)建的新的progress對(duì)象。

使用異步的方式:

await client.DownloadFileAsync(localPath, remotePath, FtpLocalExists.Overwrite, FluentFTP.FtpVerify.Retry, progress);

使用同步的方式:

client.DownloadFile(localPath, remotePath, FtpLocalExists.Overwrite, FluentFTP.FtpVerify.Retry, progress);

對(duì)于.NET 2.0的用戶,通過(guò)IProgress類來(lái)實(shí)現(xiàn)。你傳遞的對(duì)象的Report()方法將會(huì)攜帶進(jìn)度的值被調(diào)用。


 如何上傳動(dòng)態(tài)創(chuàng)建的數(shù)據(jù)?

使用Upload()來(lái)上傳一個(gè)stream或者byte[]


 如何下載數(shù)據(jù)而不將其保存到磁盤?

使用Download()將數(shù)據(jù)下載到一個(gè)stream或者byte[]中。


 如何繼續(xù)下載一個(gè)文件?

使用帶有existsMode設(shè)置為FtpLocalExists.Append的DownloadFile()或者DownloadFiles()。

//通過(guò)比較文件大小和本地文件的大小,只下載文件中缺少的部分

client.DownloadFile(@”C:\MyVideo.mp4”, “/htdocs/MyVideo.mp4”, FtpLocalExists.Append);

其他的配置:

  1. FtpLocalExists.Skip - 如果本地文件存在,我們將盲目地跳過(guò)下載,而不進(jìn)行任何檢查。

  2. FtpLocalExists.Overwrite - 如果本地文件存在,則重新啟動(dòng)下載并覆蓋該文件。

  3. FtpLocalExists.Append - 如果本地文件存在,我們通過(guò)檢查本地文件大小來(lái)恢復(fù)下載,并將丟失的數(shù)據(jù)追加到文件中。


 如何繼續(xù)上傳一個(gè)文件?

使用一個(gè)新的API UploadFile():

//通過(guò)比較文件大小和本地文件的大小,只上傳服務(wù)器文件中缺少的部分

client.UploadFile(@”C:\bigfile.iso”, “/htdocs/bigfile.iso”, FtpLocalExists.Append);


如何控制上傳和下載的速度?

設(shè)置UploadRateLimitDownloadRateLimit屬性來(lái)控制數(shù)據(jù)傳輸?shù)乃俣?。只?span style="margin: 0px; padding: 0px; color: rgb(51, 102, 255);">高級(jí)API才支持同步和異步版本,比如:

  1. Upload()/Download()

  2. UploadFile()/DownloadFile()

  3. UploadFiles()/DownloadFiles()

有關(guān)節(jié)流的最新改進(jìn),請(qǐng)參閱這篇文章。


 如何驗(yàn)證文件的哈希值/校驗(yàn)和,如果校驗(yàn)和不匹配,如何重試?

FtpVerify選項(xiàng)設(shè)置添加到UploadFile()或DownloadFile()以啟用自動(dòng)校驗(yàn)和驗(yàn)證。

//上傳文件的時(shí)候重新嘗試設(shè)置為3次

client.RetryAttempts = 3;


//上傳一個(gè)文件,在放棄之前或嘗試重傳3次

client.UploadFile(@"C:\MyVideo.mp4", "/htdocs/MyVideo.mp4", FtpExists.Overwrite, false, FtpVerify.Retry);

所有可能的配置:

  1. FtpVerify.OnlyChecksum - 驗(yàn)證校驗(yàn)和,根據(jù)成功返回真/假。

  2. FtpVerify.delete - 驗(yàn)證校驗(yàn)和,如果不匹配就刪除目標(biāo)文件。

  3. FtpVerify.Retry - 驗(yàn)證校驗(yàn)和,重試復(fù)制X次,然后放棄。

  4. FtpVerify.Retry | FtpVerify.Throw - 驗(yàn)證校驗(yàn)和,重試復(fù)制X次,如果仍然不匹配則拋出錯(cuò)誤。

  5. FtpVerify.Retry | FtpVerifydelete - 驗(yàn)證校驗(yàn)和,重試復(fù)制X次,如果仍然不匹配就刪除目標(biāo)文件。

  6. FtpVerify.Retry | FtpVerifydelete | FtpVerify.Throw - 驗(yàn)證校驗(yàn)和,重試復(fù)制X次,如果仍然不匹配就刪除目標(biāo)文件,然后拋出一個(gè)錯(cuò)誤


 如何追加到一個(gè)文件?

使用API Upload():

//將數(shù)據(jù)追加到一個(gè)已經(jīng)存在的文件中

File.AppendAllText(@"C:\readme.txt", "text to be appended" + Environment.NewLine);


//只有readme.txt的新部分將被寫入服務(wù)器

client.UploadFile("C:\readme.txt", "/htdocs/readme.txt", FtpExists.Append);

使用基于流的API OpenAppend():

using (FtpClient conn = new FtpClient()) {

    conn.Host = "localhost";

    conn.Credentials = new NetworkCredential("ftptest", "ftptest");


    using (Stream ostream = 

 conn.OpenAppend("/full/or/relative/path/to/file")) {

        try {

            ostream.Position = ostream.Length;

            var sr = new StreamWriter(ostream);

            sr.WriteLine(...);

        }

        finally {

            ostream.Close();

            conn.GetReply(); //從服務(wù)器讀取成功/失敗響應(yīng) 

        }

    }

}


如何使用低級(jí)的(low-level)API下載文件?

使用API OpenRead():

//創(chuàng)建遠(yuǎn)程FTP流和本地文件流

using (var remoteFileStream = client.OpenRead(remotePath, FtpDataType.Binary)){

    using (var newFileStream = File.create(localPath)){

        //一次讀取8KB的數(shù)據(jù)(你可以增加數(shù)量)

        byte[] buffer = new byte[8 * 1024];

        //下載文件到本地的流

        int len;

        while ((len = remoteFileStream.Read(buffer, 0, buffer.Length)) > 0)

        {

            newFileStream.Write(buffer, 0, len);

        }

    }

}


//讀取FTP響應(yīng)并防止套接字上的過(guò)時(shí)數(shù)據(jù)

client.GetReply();


如果我的服務(wù)器不支持UTF-8,如何上傳/下載Unicode文件名的文件?

手動(dòng)設(shè)置連接編碼,以確保特殊字符正常工作。

默認(rèn)你應(yīng)該使用的代碼頁(yè)(codepage)是1252 Windows Western。它支持英語(yǔ)+歐洲字符(重音字符)。

client.Encoding = System.Text.Encoding.GetEncoding(1252); //ANSI代碼頁(yè)1252(Windows Western)

以下是基于你需要的字符集的代碼頁(yè)的完整列表:

  1. 874 – English + Thai

  2. 1250 – English + Central Europe

  3. 1251 – English + Cyrillic (Russian)

  4. 1252 – English + European (accented characters)

  5. 1253 – English + Greek

  6. 1254 – English + Turkish

  7. 1255 – English + Hebrew

  8. 1256 – English + Arabic

  9. 1257 – English + Baltic

  10. 1258 – English + Vietnamese


GetListing()如何在內(nèi)部工作?

  1. 當(dāng)你調(diào)用GetListing(),如果它們被服務(wù)器支持,F(xiàn)luentFTP首先會(huì)想要去使用機(jī)器列表清單(使用MLSD命令)。這些數(shù)據(jù)是最準(zhǔn)確的,并且你可以獲取正確的文件大小和修改日期(UTC)。你可以使用client.ListingParser = FtpParser.Machine來(lái)強(qiáng)制使用這個(gè)模式,并且使用FtpListOption.ForceList標(biāo)志來(lái)禁用它。您還應(yīng)該包括FtpListOption.Modify標(biāo)志來(lái)獲得最精確修改日期(精確到第二個(gè))。

  2. 如果機(jī)器列表清單不被支持,我們退一步使用下面列出的特定于服務(wù)器OS的解析器(LIST命令)。你可以強(qiáng)制地使用一個(gè)特定的解析器,通過(guò)使用client.ListingParser = FtpParser.*。

  • Unix解析器:用于例如Pure-FTPd、ProFTPD、vsftpd。如果遇到錯(cuò)誤,通過(guò)使用client.ListingParser.UnixAlt,你可以嘗試使用另一種Unix解析器。

  • Windows解析器:用于例如IIS、DOS、Azure、FileZilla服務(wù)器。

  • VMS解析器:用于例如Vax、VMS、OpenVMS。

  • NonStop解析器:用于例如Tandem、HP NonStop Guardian。

  • IBM解析器:用于列入IBM OS/400。

如果這些都不能滿足你,你還可以退一步使用名稱清單列表(NLST命令),它比LIST和MLSD命令要慢很多。這是因?yàn)镹LST只發(fā)送文件名列表,沒(méi)有任何屬性。必須逐個(gè)文件地查詢服務(wù)器的文件大小、修改日期和類型(文件/文件夾)。通過(guò)FtpListOption.ForceNameList標(biāo)志,可以讓名稱清單列表可以被強(qiáng)制使用。

筆記:一些FTP服務(wù)器在列空文件夾的列表清單的時(shí)候不返回應(yīng)答,所以客戶端在另一端將沒(méi)有與服務(wù)器溝通的套接字。這些異常在內(nèi)部被捕獲,并返回一個(gè)空的文件列表。如果你需要檢查這個(gè)的捕獲的實(shí)現(xiàn),請(qǐng)?jiān)贔luentFTP項(xiàng)目中搜索FtpMissingSocketException的所有實(shí)例。


GetListing()如何返回一個(gè)遞歸的文件列表?

在就版本的FluentFTP中,我們假定所有的服務(wù)器都支持通過(guò)List -R命令來(lái)遞歸列出文件的列表清單。然而,這導(dǎo)致了各種FTP服務(wù)器布置成遞歸列出清單的許多的問(wèn)題:GetListing()調(diào)用將簡(jiǎn)單地返回第一個(gè)目錄的內(nèi)容,而不包含任何子目錄。

因此,自從20.0.0版本,我們嘗試去檢查FTP服務(wù)器的軟件,并且如果我們確定它不支持遞歸列表,我們將自己動(dòng)手地進(jìn)行遞歸。我們開(kāi)始先假設(shè)所有服務(wù)器都不支持遞歸列表,然后將特定的服務(wù)器類型列入白名單。

如果您感覺(jué)GetListing()在使用遞歸列出列表清單的時(shí)候速度太慢,并且您知道您的FTP服務(wù)器支持LIST -R命令,然后請(qǐng)為您的服務(wù)器提供支持:

  1. 找到FtpServer枚舉中存在的FTP服務(wù)器類型。

  2. FtpClient.RecursiveList()更新為您的服務(wù)器類型返回為true。


支持哪種散列命令?

我們支持XCRC、XMD5和XSHA,它們是非標(biāo)準(zhǔn)命令,不包含任何形式的規(guī)范。它們不能保證工作,強(qiáng)烈建議您檢查FtpClient。在調(diào)用這些方法之前,為各自的標(biāo)志設(shè)置功能標(biāo)志(XCRC、XMD5、XSHA1、XSHA256、XSHA512)。

這里文章中描述的MD5命令支持也已經(jīng)被添加。在執(zhí)行命令之前,再次檢查FtpFeature.MD5。

對(duì)HASH命令的支持已經(jīng)添加到FluentFTP中。它支持從支持這個(gè)功能的服務(wù)器上檢索SHA-1、SHA-256、SHA-512和MD5散列。返回的FtpHash對(duì)象,它有一個(gè)具有針對(duì)給定流或本地文件檢查結(jié)果的方法。你可以在這個(gè)草案中了解更多關(guān)于HASH的信息。


如何在調(diào)試時(shí)追蹤FTP命令?

在程序啟動(dòng)時(shí)執(zhí)行此操作(因?yàn)樗庆o態(tài)的,所以對(duì)所有FtpClient實(shí)例都有效)。

.NET Framework版本

FtpTrace.AddListener(new ConsoleTraceListener());

FtpTrace.LogUserName = false;//隱藏FTP用戶名

FtpTrace.LogPassword = false;//隱藏FTP密碼

FtpTrace.LogIP = false; //隱藏FTP的IP地址

.NET Standard版本

FtpTrace.LogToConsole = true;

FtpTrace.LogUserName = false;//隱藏FTP用戶名

FtpTrace.LogPassword = false;//隱藏FTP密碼

FtpTrace.LogIP = false;//隱藏FTP的IP地址


 如何在調(diào)試記錄所有的FTP命令到文件中?

在程序啟動(dòng)時(shí)執(zhí)行此操作(因?yàn)樗庆o態(tài)的,所以對(duì)所有FtpClient實(shí)例都有效)。

.NET Framework版本

FtpTrace.AddListener(new TextWriterTraceListener("log_file.txt"));

FtpTrace.LogUserName = false;//隱藏FTP用戶名

FtpTrace.LogPassword = false;//隱藏FTP密碼

FtpTrace.LogIP = false; //隱藏FTP的IP地址

.NET Standard版本

FtpTrace.LogToFile = “log_file.txt”;

FtpTrace.LogUserName = false;//隱藏FTP用戶名

FtpTrace.LogPassword = false;//隱藏FTP密碼

FtpTrace.LogIP = false;//隱藏FTP的IP地址


如何將關(guān)鍵錯(cuò)誤記錄到文件中?

這是生產(chǎn)服務(wù)器的推薦配置。僅在.NET Framework版本中被支持。

在程序啟動(dòng)時(shí)執(zhí)行此操作(因?yàn)樗庆o態(tài)的,所以對(duì)所有FtpClient實(shí)例都有效)。

FtpTrace.LogFunctions = false;

FtpTrace.AddListener(new TextWriterTraceListener("log_file.txt"){

    Filter = new EventTypeFilter(SourceLevels.Error)

});


如何禁用函數(shù)調(diào)用的日志記錄?

在程序啟動(dòng)時(shí)執(zhí)行此操作(因?yàn)樗庆o態(tài)的,所以對(duì)所有FtpClient實(shí)例都有效)。

FtpTrace.LogFunctions = false;

如何中日志中省略掉敏感的信息?

使用這些設(shè)置來(lái)控制日志中包含哪些數(shù)據(jù):

  1. FtpTrace.LogUserName - 是否記錄FTP的用戶名

  2. FtpTrace.LogPassword - 是否記錄FTP的密碼

  3. FtpTrace.LogIP - 是否記錄FTP的服務(wù)器IP地址


如何使用像NLog這樣的第三方日志記錄框架?

FluentFTP有一個(gè)名為“FluentFTP”的內(nèi)置TraceSource,可用于調(diào)試和日志記錄。目前,除了.NET Standard之外,所有的.NET Framework版本都可以使用。通過(guò)寫入到程序或者配置到你的app.config或者web.config都可以將實(shí)現(xiàn)任何的TraceListener附加到類庫(kù)程序中。這將允許直接日志記錄或轉(zhuǎn)發(fā)到第三方日志記錄框架。

大多數(shù)跟蹤消息的類型為VerboseInformation,通常可以忽略,除非進(jìn)行調(diào)試。大多數(shù)被忽略的異常被歸類為Warning,但是返回布爾值表示成功/失敗的方法,將以Error級(jí)別記錄失敗原因。如果您使用的是.NET Standard,并且設(shè)置了DEDUG標(biāo)志,然后所有日志消息將通過(guò)Debug.Write(message)方式發(fā)出。

在代碼中附加TraceListener:

TraceListener console = ConsoleTraceListener() {

    Filter = new EventTypeFilter(SourceLevels.Verbose | SourceLevels.ActivityTracking)

};

FtpTrace.AddListener(console);

通過(guò)配置文件附加:

<system.diagnostics>
   <trace autoflush="true"></trace>
   <sources>
       <source name="FluentFTP">
           <listeners>
               <clear />
               <!--附加一個(gè)Console控制臺(tái)監(jiān)聽(tīng)器-->
               <add name="console" />
               <!--附加一個(gè)File監(jiān)聽(tīng)器-->
               <add name="file" />
               <!--附加一個(gè)用戶自定義的監(jiān)聽(tīng)器-->
               <add name="myLogger" />
               <!--附加一個(gè)NLog監(jiān)聽(tīng)器-->
               <add name="nlog" />
            </listeners>
       </source>
   </sources>
   <sharedListeners>
       <!--定義一個(gè)Console控制臺(tái)監(jiān)聽(tīng)器-->
       <add name="console" type="System.Diagnostics.ConsoleTraceListener" />
       <!--定義一個(gè)File監(jiān)聽(tīng)器 -->
       <add name="file" type="System.Diagnostics.TextWriterTraceListener" initializeData="outputFile.log">
           <!--只寫入錯(cuò)誤-->
           <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" />
       </add>
       <!--定義一個(gè)用戶自定義的監(jiān)聽(tīng)器-->
       <add name="custom" type="MyNamespace.MyCustomTraceListener />
       <!--附加一個(gè)NLog監(jiān)聽(tīng)器-->
       <add name="
nlog" type="NLog.NLogTraceListener, NLog" />
   </sharedListeners>
</system.diagnostics>

EnableThreadSafeDataConnections做什么?

EnableThreadSafeDataConnections是由最初的作者構(gòu)建的一個(gè)較老的特性。如果為true,那么每當(dāng)您試圖上傳/下載文件時(shí),它都會(huì)打開(kāi)一個(gè)新的FTP客戶端實(shí)例(并重新連接到服務(wù)器)。它曾經(jīng)是默認(rèn)設(shè)置,但它嚴(yán)重影響了性能,所以我禁用了它,發(fā)現(xiàn)許多問(wèn)題都得到了解決,性能也得到了恢復(fù)。我相信如果開(kāi)發(fā)者想要多線程上傳,他們應(yīng)該啟動(dòng)一個(gè)新的BackgroundWorker并在該線程中創(chuàng)建/使用FtpClient。如果你想要并發(fā)上傳,可以嘗試一下。


如何對(duì)FluentFTP做一些修改?/如何提交一個(gè)拉取請(qǐng)求(a pull reqest)?

首先你必須“fork”FluentFTP,然后對(duì)本地版本進(jìn)行更改,當(dāng)提交“pull request”請(qǐng)求讓我合并你的變化。

  1. 在這個(gè)頁(yè)面的右上角點(diǎn)擊Fork

  2. 在這里打開(kāi)你的版本:https://github.com/YOUR_GITHUB_USERNAME/FluentFTP

  3. 下載Github Desktop并登錄你的賬戶

  4. 點(diǎn)擊File > Clone repository... 并且在列表中選擇FluentFTP

  5. 將想要放置源碼的地方,編輯到“本地的路徑”,并且點(diǎn)擊Clone

  6. 使用Visual Studio 2017 Community以及更高的版本來(lái)對(duì)項(xiàng)目進(jìn)行編輯

  7. 切換到Github桌面,它現(xiàn)在應(yīng)該會(huì)顯示已更改文件的列表

  8. 輸入一個(gè)提交的總結(jié)記錄(左下方),然后點(diǎn)擊Commit

  9. 點(diǎn)擊Push to origin(右上方)

  10. 打開(kāi)拉取請(qǐng)求頁(yè)面來(lái)創(chuàng)建一個(gè)PR

  11. 點(diǎn)擊New pull request(右上方)

  12. 點(diǎn)擊compare across forks(藍(lán)色的鏈接,右上方)

  13. 在右邊的“head fork”中選擇您的用戶名

  14. 點(diǎn)擊create pull request

  15. 總結(jié)你在標(biāo)題中所做的修改

  16. 鍵入有關(guān)您在描述中所做更改的詳細(xì)信息

  17. 點(diǎn)擊create pull request

  18. 謝謝!


 如何檢測(cè)正在連接的服務(wù)器的類型?

您可以讀取ServerType來(lái)獲得您所連接的FTP服務(wù)器軟件的確切類型。我們動(dòng)態(tài)根據(jù)我們接連到服務(wù)器時(shí)服務(wù)器所發(fā)送的歡迎信息(the welcome message),來(lái)檢測(cè)FTP服務(wù)器軟件。我們目前可以檢測(cè)如下軟件類型:

  1. PureFTPd

  2. VsFTPd

  3. ProFTPD

  4. WuFTPd

  5. FileZilla Server

  6. OpenVMS

  7. Windows Server/IIS

  8. Windows CE

  9. GlobalScape EFT

  10. HP NonStop/Tandem

  11. Serv-U

  12. Cerberus

  13. CrushFTP

  14. glFTPd

  15. Homegate FTP

  16. BFTPd

  17. FTP2S3 Gateway

  18. XLight

  19. Solaris FTP

  20. IBM z/OS

您還可以讀取ServerOS來(lái)獲得所連接的FTP服務(wù)器的操作系統(tǒng)。我們可以檢測(cè)如下系統(tǒng)到:

  1. Windows

  2. Unix

  3. VMS

  4. IBM OS/400

  5. IBM z/OS

  6. SunOS


如何使用客戶端證書登入FTPS?

添加你的證書到ClientCertificates,然后再調(diào)用Connect()。

client.EncryptionMode = FtpEncryptionMode.Explicit;
client.SslProtocols = SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12;
client.SocketKeepAlive = false;
client.ClientCertificates.Add(new X509Certificate2("C:\mycert.cer"));
client.ValidateCertificate += (control, e) => {
   e.Accept = e.PolicyErrors == SslPolicyErrors.None;
};
client.Connect();

并確保:

  1. 您使用的是X509Certificate2對(duì)象,而不是不完整的X509Certificate實(shí)現(xiàn)。

  2. 您不使用pem證書,而是使用p12。請(qǐng)查看這篇Stack Overflow thread來(lái)獲得更多信息。如果您獲得的SPPI異常中包含關(guān)于意外消息或格式錯(cuò)誤消息的內(nèi)部異常,您可能使用了錯(cuò)誤類型的證書。


如何從一個(gè)文件捆綁X509證書?

您需要將證書添加到本地存儲(chǔ)(local store),然后執(zhí)行以下操作:

FluentFTP.FtpClient client = new FluentFTP.FtpClient("WWW.MYSITE.COM""USER","PASS");

//選擇證書并將它添加到客戶端
X509Store store = new X509Store("MY", StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection scollection = X509Certificate2UI.selectfromCollection(fcollection, "select a certificate""select a certificate", X509selectionFlag.Multiselection);

if (scollection.Count != 1)
{
   throw new Exception("Error: You have not chosen exactly one certificate");
}

foreach (X509Certificate2 x509 in scollection)
{
   client.ClientCertificates.Add(x509);
}

store.Close();

//client.ReadTimeout = 10000;
client.Connect();

這是另外一種方式。使用X509Certificate2。我一直無(wú)法讓X509Certificate證書工作,從我的查閱的資料來(lái)看,這是因?yàn)樗且粋€(gè)不完整的實(shí)現(xiàn)。

public void InitSFTP()
{
   FluentFTP.FtpClient client = new     FluentFTP.FtpClient("WWW.MYSITE.COM""USER""PASS");
   X509Certificate2 cert_grt = new X509Certificate2("C:\mycert.xyz");
   client.EncryptionMode = FtpEncryptionMode.Explicit;
   client.DataConnectionType = FtpDataConnectionType.PASV;
   client.DataConnectionEncryption = true;
   client.ClientCertificates.Add(cert_grt);
   client.ValidateCertificate += new FtpSslValidation(OnValidateCertificate);
   client.Connect();
}      

private void OnValidateCertificate(FtpClient control, FtpSslValidationEventArgs e)
{
   e.Accept = true;
}

解決問(wèn)題


在Visual Studio 2010中Fluent安裝失?。骸癝ystem.Runtime”已經(jīng)為“FluentFTP”定義了一個(gè)依賴項(xiàng)

你的VS使用了一個(gè)老版本的nuget.exe,所以它不能正確安裝最新的FluentFTP。你必須下載nuget.exe 并手動(dòng)執(zhí)行下面這些命令:

cd D:\Projects\MyProjectDir
C:\Nuget\nuget.exe install FluentFTP

上傳一個(gè)帶有特殊字符的文件,像是“Caffè.png”,在FTP服務(wù)器上,它表現(xiàn)為“Caff?.png”。這個(gè)服務(wù)器只支持ASCII,但是這個(gè)“è”是ASCII。FileZilla可以上傳這個(gè)文件,并且沒(méi)有任何問(wèn)題

手動(dòng)設(shè)置連接編碼,以確保特殊字符正常工作。

默認(rèn)你應(yīng)該使用的代碼頁(yè)(codepage)是1252 Windows Western。它支持英語(yǔ)+歐洲字符(重音字符)。

client.Encoding = System.Text.Encoding.GetEncoding(1252); //ANSI代碼頁(yè)1252(Windows Western)

如何文件名中含有俄文字母,我無(wú)法刪除這個(gè)文件。但是FileZilla可以刪除這個(gè)文件,并且沒(méi)有問(wèn)題

手動(dòng)設(shè)置連接編碼,以確保特殊字符正常工作。

對(duì)于俄語(yǔ),你需要使用代碼頁(yè)1251 Windows Cyrillic

client.Encoding = System.Text.Encoding.GetEncoding(1251); //ANSI代碼頁(yè)1251(Windows Cyrillic)

我總是在我的Azure WebApp中發(fā)生TimeoutException異常

首先嘗試減少Azure需要的套接字輪詢間隔。

client.SocketPollInterval = 1000;

如果這也不管用,那么試著減少超時(shí)時(shí)間。

client.SocketPollInterval = 1000;
client.ConnectTimeout = 2000;
client.ReadTimeout = 2000;
client.DataConnectionConnectTimeout = 2000;
client.DataConnectionReadTimeout = 2000;

如果這些都不起作用,請(qǐng)記住Azure有一個(gè)間歇性的bug,在這個(gè)bug中,它會(huì)在FTP請(qǐng)求期間更改ip地址。連接是使用IP地址A建立的,Azure使用IP地址B進(jìn)行數(shù)據(jù)傳輸,這在很多防火墻上是不允許的。這是一個(gè)已知的Azure bug。


許多的命令無(wú)法在Windows CE上正常工作

根據(jù)MSDN上所說(shuō)的,Windows CE上的FTP實(shí)現(xiàn)是最少的,并通過(guò)源代碼開(kāi)放定制。許多高級(jí)命令如CHMOD都不受支持。


使用OpenWrite/OpenAppend成功傳輸單個(gè)文件后,后續(xù)文件失敗,出現(xiàn)一些隨機(jī)錯(cuò)誤,如“格式錯(cuò)誤的PASV響應(yīng)”

您需要在傳輸完文件之后調(diào)用FtpReply status = GetReply(),以確保沒(méi)有遺留過(guò)時(shí)的數(shù)據(jù),以免打亂后續(xù)命令。


在FTPS的登入期間,SSL協(xié)商非常緩慢

FluentFTP在.NET Framework的底層使用SslStream。SslStream使用一個(gè)windows的特性功能來(lái)動(dòng)態(tài)地更新Root CA證書,這可能會(huì)導(dǎo)致證書認(rèn)證過(guò)程中的長(zhǎng)時(shí)間延遲。這可能會(huì)在FluentFTP中引起與SocketPollInterval屬性相關(guān)的問(wèn)題,該屬性用于檢查客戶機(jī)和服務(wù)器之間的不合理斷開(kāi)連接。這個(gè)MSDN博客討論了SslStream的問(wèn)題,并討論了如何禁用Root CA證書的自動(dòng)更新。

FluentFTP記錄認(rèn)證所需的時(shí)間。如果您認(rèn)為自己正遭受這個(gè)問(wèn)題的困擾,那么請(qǐng)查看Examples\ debug .cs以獲取有關(guān)檢索調(diào)試信息的信息。


無(wú)法從傳輸連接讀取數(shù)據(jù):遠(yuǎn)程主機(jī)強(qiáng)制關(guān)閉了現(xiàn)有連接

這意味著服務(wù)器上的 [FTP守護(hù)進(jìn)程(FTP daemon)] 服務(wù)沒(méi)有運(yùn)行(可能不是這種情況),或者服務(wù)當(dāng)前仍然忙于執(zhí)行另一個(gè)操作。這聽(tīng)起來(lái)就像服務(wù)器返回一條消息,表明它仍然在執(zhí)行上一個(gè)操作。

嘗試減少輪詢間隔以確保連接不會(huì)超時(shí)。

client.SocketPollInterval = 1000;

該文章在 2023/10/9 9:50:00 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2024 ClickSun All Rights Reserved

美女性感一二区,天堂久久久久久中文,自拍偷拍亚洲动漫 ,小浪货腿打开水真多视频,国产无套内精在线观看,巨胸喷奶水免费视频,欧美一级粗黑,免费高清欧美一区二区三区,黑人越猛烈欧美XX00动态图,最近亚洲国产网页aⅴ,少妇自拍视频一区,亚洲精品福利视频久久,最新手机国产在线小视频,国产午夜福利无,在线免费观看国产污污污视频,97视频国产中文,在线欧美sm一卡
国产精品久久久久久影院| 国产a免费一级视频| 亚洲午夜福利视频,| aⅴ成人免费观看| 网红三级视频在线| asian极品呦女xx| 一本大道道香蕉a| 亚洲人成影院在线观看| 国产女高中生高潮在线| jazz久久精品| 亚洲欧美国产一区二区在线看| 丰满少妇愉情中文字幕| 131美女爱做视频午夜电影| 亚洲欧洲日韩中文v在线观看| 亚洲嫩模喷白浆在线观看自拍| 高清精品福利私拍国产写真| 欧美13一14娇小xxxx| 色色色色色色色九九九| 中文字幕韩国激情视频网站| 亚洲天堂网站| 好了AV在线第四综合网站| 国产aⅴ一区二区三区| 国产91AV免费播放| 亚洲日韩一区二区在线影视| 正在播放女子高潮大叫要 | 国产2022最新精品视频| 久久综合九色综合网站| 成人免费午夜A大片| 久久欧洲欧美| 夜夜春日本少妇| 丁香五香天堂久久| 厕所里偷拍9名美女撒尿视频| 小辣椒福利视频导航| 成人Aⅴ免费视频在线观看| 成 人 a v天堂| 动图男女欧美俄罗斯日韩国产一区 | JizzJizzJizz亚洲成年大全| 欧美最猛性开放2ovideos| 成年男女免费视频网站在线观看| 黑色国产在线| 杨幂被艹视频在线观看| 久久久久久久岛国免费观看| 国产对白俱乐部交换在线播放| 中国XXXX真实自拍| 少妇AV大秀尤物| yw193国产AV剧情| 亚欧a人视频在线| a一级农村国产片| 国产精品亲子乱子伦| 吉林老女人高潮| 国产精品30p| 国产精品勾引上司在线播放| 午夜凹凸福利视频| 亚洲嫩模在线视频观看| 伊人久久大香线蕉影院| 性色的免费视频| 粉嫩美女在线喷水| 国产丝袜免费| 中文人成影院| 欧美日韩深夜福利网站| 国产AV巨作精品原创 | 2021最新国产自产在线不卡| 在线宅男噜噜网站| 色窝窝蝌蚪网| 又污又爽无遮挡的网站| 女人一级免费看| 野战好大好紧好爽快点| 国产美女高潮在在线播放| 夜夜揉夜夜操| 国产一区二区三四区不卡| 国内久久久久网站| 伊人青青在线一区二区三区| 夜夜高潮夜夜爽夜夜爱| 亚洲女优在线观看免费网站| 少妇bbbbb撒尿视频| 91free video国产精品| 亚洲非洲欧洲污在线观看| 性视频亚洲网站| 秋霞 鲁丝一区| 国产午夜人做人免费视频网站男人放进女人阳道 | 大杳蕉狼人欧美全部在线| 国产OO后高中生在线视频| 在线播放91变态白浆| 国产嗯啊在线观看要| 色综合久久白洁| 黄页网址视频大全日韩在线| 久久少妇精品11p| 免费高清欧美一区二区三区| 最近免费中文字幕| 在线观看网站污| 巨大屁股女教师极品白嫩少妇| 久久99热人人噜| 未满十八18周岁禁止免费网站| 伊人精品久久久大香线蕉| 999五月精品| 国产91黑人在线观看| 日哟AV免费看| 被窝亚洲| 一本大道精品视频在线| 淹影二区妇女三区自拍偷拍自偷| AV每日更新 在线观看| 无遮挡粉嫩小泬| 两个男人扒开花唇轻咬小核| 国产精品久久香蕉网| sm另类一区二区三区| www色香蕉| 尤物在线观看视频国产| 国内情侣作爱视频网站| 自拍偷区亚洲综合第一页欧| 美女裸身黄18以下禁止观看| 五月天婷婷综合在线观看Av| 92国产精品午夜福利| 亚洲最大成AV人网站| 私人情侣网站欧美大片| 美女脱内衣禁止十八以下观看免费| 天天做天天摸天天爽天天爱| 久久精品久久久久久不卡齐齐| 亚洲日韩欧美天堂在线视XX| jizzjizzjjizz日本护士大全 | 国产美女被操| 11女女色综合网| 一本一道久久综| 狠狠cao高清免费| 久久国产黑丝袜视频| 99色我要噜噜噜| 亚洲午夜久久久影院伊人| 亚洲国产无卡在线| 欧美日日网| 最新国产女同精品精品视频| 国产福利美女在线| 又爽又黄又无遮| 久久综合精品国产二区无| 国产AV麻豆精品第一页| 亚洲jiZZjiZZ在线播放久| 国产福利久久高清| 窝窝人体色www| 国内偷拍国内精品免费视频| 高清综合欧美亚洲日韩| 邻居少妇下面好紧好多水真爽| 最近最新中文字幕大全在线| 丰满少妇被猛烈进入高清播放!| 亚洲免费福利在线视频| 2017AV 天堂网| 国语对白国产乱子伦| 欧美午夜福利视频| 国产亚欧女人天堂AV在线| 国产欧美二区综合| 亚洲精品高清国产一线久久,| 厕所婷婷久久| 伊人五月天网站| 在线亚洲专区高清中文字幕| 极品盛宴91在线| 日日摸夜夜添夜夜添国产91| 欧美禽杂一级视频| 欧美影院未满十八| 国产雏女破苞在线播放| 60岁欧美乱子伦XXXX| 又色又狠又爽的视频在线网站| 成年三级理论在线观看| 成年专区曰批免费网| 狼人香蕉香蕉在线中文| 国产情侣一区在线| 国产白浆喷潮| 国产剧情护士的遭遇在线观看| AV天堂污污在线| mm在线精品视频在线观看| 亚洲中文字幕国产综合| 日本va电影尢物免费观看| 久久青草资料网站| 涨精装满肚子上学流出来| 国产制服丝袜视频在线| 孕妇免费视频一级大片| 精品福利综合网址在线| 把JK制服美女高潮视频| 国语自产拍在线视频中文影音先锋 | 亚洲一区二区狠干| XX欧美 日韩 第一性| 五月婷婷网站| h日漫在线观看亚洲| 嗯啊免费视频| 国产良妇出轨视频在线| 亚欧在线观看免费| 999精品全免费观看视频| 久久福利视频96| 国产在线最新| 后进翘臀美女视频在线观看| 久久97久久精品免费看| 337p日本欧洲亚洲大胆色模| 国产区久久女人体一区二区| AV片在线观看网站免费的| 日本三级欧美三级人妇视频| 日韩一区二区三区中文| 少妇富婆高级按摩出水高潮| 国产精品 - 色哟哟| 东方AⅤ免费观看久久AV| 精品女同在线观看| 亚洲日韩 自偷自拍| 日韩精品一区二区三区中文不卡| 国产真人无遮挡免费视频| 亚洲自拍愉拍| 中文字幕侵犯社区网| 理论动漫资源电影影音先锋| 孩交videos精品乱子豆奶视频| 亚洲观看AV网址| y111111电影院少妇影院| 国产免费午夜福利在线播放11| 亚洲T∨在线观看| 黑丝 在线播放| 国产女人高潮抽搐喷水嗷嗷叫 | 综合狠狠久久| 又长又粗又硬美女又爽的视频| 国产精品 天干天干| 日日麻批永久免费视频播放| 欧美最刺激的性视频| 亚州情侣一区二区不卡| 厕所xvideos女孩视频在线| 日本一道综合久久aⅴ免费| 亚洲天堂性爱网址| 久久伊人AV综合影院| 久久国产精品久久精品国产| 国产丝袜拍偷超清在线| 午夜国产美女| 9999亚洲中文字幕| 娇妻被强行打开双腿灌满白浆| 白浆在线| 538任你爽精品视频国产| 亚洲Av男男| 国产羞涩免费视频在线观看| 精品剧情V国产在线观看| 国产强奷视频在线观看| 国产精品精品自产| 欧美黑人巨大xxxxx| 亚洲一区激情中文字幕| 国内精品伊人久久久久网站| 嗯啊~流白浆视频| 中国男同GayAv网站| 18AV永久免费| 免费精品国产一区二区三区| 亚洲乱码中文字幕综合| 国999久久高清免费观看| 久久久久免费精品国产| 国产丝袜脚足J在线视频播放 | 日本丰满巨肥大屁股BBW| 久久不良视频| heyzo高清中文字幕| 看片在线高清在线观看| 曰批免费视频播放免费直播| 亚州网www站| 大屁股白浆一区二区| 国产制服丝袜在线麻豆| 国产尤物aⅴ在线观看不卡| 久久精品亚洲日本波多野结衣| 亚洲就去吻婷婷| 国产精品所白浆视频| 久久精品免费 国产27 精品| 男人和女人高潮免费网站| 又爽又黄无遮挡激情视频| 国产欧美国日产高清| mm131美女做爽爽爱视频| 欧美精品XXXXBBBB| 欧美性爱精品国产12| 被一群男人玩得嗷嗷叫小说| 国产亚洲欧美日韩在线观看| 久热re这里精品视频在线6| 国产精品vⅰ视频| A级黑粗大硬长爽猛视频| 色狠狠综合爱网| a级国产乱理伦片在线观看| 午夜福利日本孕妇在线| 一区二区亚洲| 高潮一进一出视频免费| 亚洲综合天堂Av网站在| 国产黑色丝袜流白浆视频| 9999www免费视频| 久久精品美女观看| 男男♂动漫gv网站免费观看| 翁公在和厨房猛烈进出| 又爽又高潮的免费视频| 白丝美女在线精品喷水视频| 国产欧美在线亚洲一区| 五月天综合影院| 爽极品色极品影院在线| 在线国产尤物导航| 鲁丝片一区二区三区免费| AV动漫一区二区三区| 搡老熟女国产| 久久久久精品国产99久久综合| 99免費在线播放视频| 尤物影音先锋在线观看| 极品白人性网站| 激情综合色婷婷激情丁香| 双性人妖亚洲二区三区| 女上男下边做边叫视频免费| 嗯啊……好爽视频| 在线观看黄AⅤ免费观看无毒| 外国孩交videossex| 欧美精品国产综合久久| 中国同志GAY片在线观看| yellow中文字幕熟女| 久久综合激激的五月天| 最爽的乱惀另类视频| 久久香蕉精| 最新成免费人视频在线| 亚洲11p在线| 激情婷婷基本| 亚洲日韩久久AI杨幂| jyzz免费视频| 男人j进女人p免费视频| 国产在线视频一区二区三区| 又色又爽又粗的少妇视频| 五月丁香激激情亚洲综合| 亚洲精品一二区配种| 日本真人jⅰf动态图免费| 久久久久久中文字幕| h视频在线观看导航| 久久五月天网站| 欧美性爱AⅤ| 老司机精品成影院18在线| Av首页在线播放| 国产欧美精品一区aⅴ| 国产bbbbbxxxxx精品| 和 子同居的日子AV片| 污污网站网址在线观看日本黄| AV在线天堂进入| 婷婷开心色四房播播久久一本人 | 家庭乱码区中文字幕| 国产欧美精品区一区二区三区| 精品免费观看调教网| 国产丝袜美女在线高潮| 亚洲男男在线播放| 日韩日批在线免费播放视频| 自拍偷区亚洲综合照片| 中国AV Chinese 国产| china高中生腹肌gay飞机直播| 日韩无砖专区2020| 尤物污网站在线看| 国产美女高潮抽搐流白浆免费| 粉嫩高潮不断正在播放| 亚洲男同在线精品| 女人打飞机免费看| 3D调教済み変态JK扩张| 插插网天天影视综合网| аwww在线| 十八禁啪啦拍视频无遮挡| 9热精品久久只有精品| 国产欧美一区二区喷水| china13末成年videos野外| 亚洲激情欧美激情| 日本丶国产丶欧美色综合| 色综合欧美在线视频区| 老司机福利在视频在线观看| 鲁丝一区鲁丝二区鲁丝三区| 国产伊人熟女| 免费久久人人网站| 欧美人成在线观看免费| 成年人六九视频| AⅤ天堂网2021手机版| 中国国产XXXXX免费视频| 亚洲伊人一本大道中文字幕| 欧美13一14娇小性| 好猛好紧好硬使劲好大网站| igao在线播放 国产精品| 久久青草精品欧美日韩精品| 极品国产主播粉嫩在线| 国产美女遭强开双腿在线观看| 小说雯雯在工地被灌满精| 亚洲日本道五十路久久综合| 波多野结衣尤物在线观看| 岛国免费Aⅴ在线观看| 婷婷六月综合缴情在线首页| 欧美激情在线观看免费不卡| 92极品少妇午夜福利| 国产综合色产在线精品| Chinese新婚videos| 国产精品夜色一区二区| 4080YY理论片在线播放日本| 尤物成人影院yw193在线观看| 粉嫩美女在线喷水| 最新午夜国内自拍视频| 国产精品美女冒白浆视频| 我想在线看片导航欧美| 又黄又猛又爽大片免费| 欧美性猛交xxxx| 性夜影院午夜寂寞影院春药| 国产区图片区小说区亚洲区| h片在线看| 综合久久久久888| zozozo女人与牛交zozozo视频| 又大又硬好舒服视频| 国产亚洲欧美日韩亚洲中文色| 性生生活20分钟免费| 国产色精品视频| 亚洲国产在化精品国自产拍| 欧美激情一区二区三区高清视频| 亚洲国产爱| 国产精品偷伦视频免费观看了| 久久99久久99精品免视看软件下载| 2021精品久久久k8| aⅴ天堂网2021手机版| 欧美成 人网站 免费| 在线黑人孕妇日韩| 国自产拍免费在线播放| 国产校花处被破的视频| 大陆国产在线视频| 亚洲高清HD综合| 韩国免费观看人成影片| 亚洲欧美在线人成大黄瓜| xxxx曰本免费观看| 高干病房玩弄双飞| 一级特黄录像免费播放中文| 午夜激情网站| 粗大猛烈进出身体高潮视频| 亚洲最大看欧美片网站地址| 五十路熟女交尾中出| igao激情在线| 黑色丝袜英语老师好紧| H视频在线观看免费的| 2020天天做天天爱天天爽| 国产在线拍揄自揄视频不卡99| 红杏AV在线播放观看| 亚洲欧洲日韩性视频在钱| 在线观看你懂| 黑人亚洲色| 欧美丰满少妇XXXX性| 国产精品白美女在线观看| 亚洲日韩每日更新| 欧美小屁孩cao大人在线播放| 白丝www视频| a级黑粗大硬长爽猛片视频| 亚洲国产一区二区三区| 国产va在线观看免费| 综合精品国产蜜芽| 玩两个丰满老熟女| 00国产精品| 五十路熟女一区二区三区| 欧美男男gaygay巨大粗长肥| 熟女全程露脸 mp4| 亚洲片手机在线视频| 午日日日夜夜夜| 欧美x视频在线g| aa久久线免费观看| wwwx爽死了视频国产| 97碰碰碰视频| 国产高清天干天天天| 99re热这里只有精品22| 国产麻豆精品福利在线| 亚洲熟女Av导航| 亚洲色国产AV天堂| 黑人粗进入欧美一级高清播放| 日韩专区调教中文字幕| 另类专区综合国产中文| 8男三女交换4p| 国产一区二区三区欧美亚洲| 99e热久久免费精品6| 午夜福利在线永久视频| 亚洲欧美成Aⅴ人在线| аⅴ日韩天堂最新版在线中文 | 欧美日本韩国三级| 1000拍拍拍无挡视频免费| 中文字幕夫目前犯视频一区| 中文字幕无线码一区| 波多野结衣久久免费看| 日韩AV免费不卡一区二区| 综合伦情亚洲欧美| 国产激烈床戏无遮挡免费视频| 中文字女同幕乱码无限2021官网 | GV男同Gay在线观看| 国产未满十八岁| 国语自产精品视频在 视频| 亚洲AV日韩AV不卡在线观看| 亚洲精品无播放器在线播放| 视频一区二区日韩中字久久| 国产剧情强姦玩弄丝袜脚| 宅男666在线永久免费观看| 亚洲色大成网站ww粉嫩| 国产精品亚洲一区二区在| 久热首页国产在线| 8x在线观看永久免费| 亚洲午夜精品A| 翁公和在厨房猛烈进行出| 国产1区2区3| 成人午夜看黄在线尤物成人| 日本免费一区二区三区| 出差上的少妇20P| 久久精品在少妇| 3d动漫黄动漫视频网站| 久久99精品久久久久久| 8x国产福利导航| 欧美精品视频在线观看你懂的| 丰满多毛的大隂户视频| 又大又硬又黄免费视频| 大香伊蕉在人线国产观看下载 | 老女人亚洲老熟女| 在线观看国产网址你懂| 成 人 网 站 视频免费| 999五月精品| 精品国产污免费网站在线观看| 精选国产乱子伦视频| 日本日日爱视频| 国产呦系列福利入口| 成年专区曰批免费网| 国产美女高潮流白浆免费视| 丁香六月激情中文字幕| 亚洲精品动漫区| 午夜福利国产精品久久熟国产| 国产午夜福利久久精品| 2021国内精品久久久久久影院| japanese厨房乱tub偷| 亚洲成香蕉AV| 亚洲成a人片www| 丁香婷婷中文字幕| 自拍偷自拍亚洲精品偷一| 啊灬啊灬啊灬快好深午夜视频| 欲帝精品导航| 亚洲国产精品张柏芝在线观看| 久久这里有精品国产电影网一区二区 | AV手机天堂在线| 久久同性视频| 国产私拍福利在线永久视频| 在线观看免费白浆视频| 亚洲图片第二页| 1国产良妇出轨视频| 久久久国产视频| 久久综合精品国产丝袜长腿| 在线观看国产欧美日韩| 成年看免费观看视频拍拍| 国产大白屁股流白浆AV| 你懂的网址在线观看免费| 欧洲免费无线码在线观看二区| 少妇中文字幕网站| 在线观看人成激情视频| 玉米视频在线观看| 久久久久久精品免费免费S| 色777亚洲综合电影| 自拍偷自拍亚洲精品偷一| 国产青榴社区视频在线观看| 日本少妇一二区| 久久嘛豆影院| 伊人一区二区三区欧美| 国产女主播高潮视频在线播放| 国产高清一国产aV麻豆网| 国产精品激情视频嫩草2| 国产刘涛AV免费精品| 欧美v一区二区三区| 邪恶帝无翼乌福利全彩| 久久国产天堂| 久久久久亚洲一区二区三区| 久久伊人少妇熟| 最新国产午夜精品视频| 亚洲色伊人久久综合| 来吧天天影视色香欲综合网| 国产,亚洲,美女| 久久精品女人天堂AV一个| 久久免费经典视频| 亚洲制服丝袜一区二区三区| 在线观看日韩制服丝袜欧美| 国产亚洲成AV人在线观看| 亚洲色網站视頻| 久久欧洲欧美| 91精品国产91久久久久久久| 青青草原伊人AV网| 一本大道在线一本久道| 欧美激情在线视频| 青青草原综合久久大伊人精品| 国产大全青青视频| 777米奇影视777米奇影院很很干| XX一个色综合国产色综合| 四库影院永久国产精品| 在线观看午夜网址| 久在线精品视频线观看| 亚洲日韩AV片h| 亚洲欧美日韩综合一区在线观看| 888米奇四色狠狠下| ,综合网红福利一线天在线| 波多野结衣 一区 二区 三区| 在线欧美sm一卡| 国产女女百合AV大片在线观看| 在线观看AV手机版| 国外午夜视频网址| 岛国视频一区| 九月激情婷婷丁香| AV麻豆男人的天堂在线观看| 色午夜在线观看网址| 亚洲A人片在线观看网址| 亚洲资源站中文在线| 欧美—iGAO视频网| 久久99国产精品| 99久久精品免费看国产一区乱理片| 国产精品人成在线播放新网站| 中国JAPANESE少妇高清| 色多多一区二区在线观看| 国产调教性奴在线观看w| 少妇高清网站| 99亚洲艹综合| 午夜国产美女| 亚洲自偷自拍首页精品| 亚洲欧美自拍另类制服丝袜| 亚欧同人精品天堂| 国产性自爱拍偷在在线播放| 无遮挡H肉真人网站| 极品少妇的粉嫩小泬视频图片| 夜夜躁日日躁狠狠| 亚洲国产成熟视频在线多多| 韩国高清AV在线免费观看| 亚洲图片第二页| 色妇在线视频| 久久公开视频| 小说雯雯在工地被灌满精| 自扣白浆一线天在线| 又色又爽又黄的视频在线观看| 波多野结衣与乡下老人在线| 国产精品久久影院| 亚洲中文字幕日产乱码在线| 一区二区三区h免费观看视频 | 又黄又刺激色多多| 97色伦在线影院| JK白丝班长胯下娇喘视频| 大学生口爆吞精视频| 十八禁大全无遮挡网站色多多| 国产精品老头野战| 国产美女制服丝袜在线| 欧美特级手机在线观看| h色在线免费看| 一个人在线看AV| 国产福利白浆在线观看视频| 草裙社区免费视频一二三区 | 日日摸夜夜高潮| 国产免费爽爽视频| 粉嫩国产尤物在线| 国产大片黄在线观看| 国产c免费视频| 国产片你懂的在线观看| 国产福利关晓彤AV在线播放| 精品一卡二卡三卡四卡视频版| www免费视频| 久操视频新免费伊人| 中文字幕一二三区不卡2021| 在线观看91精品国产| 国产亚洲精品VA在线| 日本中文字幕aⅴ高清看片| 成年女人免费碰碰视频| 在线JYZZJYZZ免费视频| 亚洲国产女人AV| 尤物视频网站免费| 波多野结衣aⅴ在线播放| 2021日产乱码网站| chinese调教白袜高中生| 啊还要用力h在线视频| 放荡交换超级乱| 2022在线免费观看黄v| 欧美精品少妇videofree720 | 女人张开腿无遮无挡视频免费| 国产精品吹潮视频| 张开腿嗯啊嗯在线视频免费观看| 久久婷婷一区二区三区| 18以下勿进色禁网站| 日本公厕所撒尿高清视频| 久久曰热久久思思精品| 青草青青激情视频在线观看| 俄罗斯6一12呦女精品不卡| 又爽又黄又无遮挡的激情照片| 尤物国产精品福利三区| 国产AV福利久久精品can麻豆| 伊人久久综合电影网站| 亚洲阿v天堂网2021| 国产精品 女同 视频| 国产资源大草原视频| 国产色老太色老太在线视频| AV在线中出| 亚洲色在线v中文字幕电影网| 2022亚洲美女诱惑视频在线| 国产精品另类专区| 99久高清在线观看视频30| 100000拍拍拍部免费视频观看| 久久超级碰碰免费视频| 337p日本欧洲亚洲大胆色模| αV在现免费观看欧美性爱精品| 国产羞羞视频| 国产2022最新精品视频| www2021狠狠| 好爽好黄好刺激的视频人妖| 国产老太睡小伙子视频| 手机AV在线网站| 夜鲁夜鲁狠鲁天天在线| 大学生美女爆白浆高清视频| 一本到高清视频在线观看欧美网站| 日本口工全彩生肉无遮挡| 亚州色大网www永久| 动漫女处被破的视频在线观看| 69视频在线观看免费| 各种少妇正面bbw撒尿| jk制服国产在线视频| 国产迪丽热巴AV在线放免费| 又粗又黄又硬又爽日韩| 国产精品亚洲哟女| 亚洲老熟女性亚洲老熟女一区二区免费| a在线视频播放免费视频完整版| 国产精品精品自产| 久久久噜噜噜久久久精品| 欧美综合亚洲日韩精品区| 杨幂性XXXXHD国产| AV天堂久久伊人| 伊人香少妇视频| 亚洲不卡在线看片| 国产激情视频一区二区| 丰满岳乱妇在线观看中字一| 99久久综合狠狠综合| 国产无遮挡又黄又爽免费视频| 午夜福利高潮| 黑人粗进入欧美一级高清播放| a岛国大片免费观看| 澳门久久精品欧美| 亚洲精选一区人成在线| 亚洲人成网站在线观看69影院| 天天欲色在线最新章节目录 | 全部免费在线vA片观看| 99精品热这里只有精品| 在线观看国产网址你懂| 不戴套插女人视频在线观看动漫版| 日韩中文字幕v亚洲中文字幕| 131美女爱做高清免费视频| 国内久久久免费视频| 国产免费三级a在线观看app下载| 亚洲一区日韩高清中文字幕亚洲| 大香线蕉伊人75网视频网站| 尤物色男人在线| 国产日韩尤物| 精品不卡一区二区| 2020天天弄亚洲系列中文字幕制服| 丰满饥渴老女人hd| 在线观看娇喘喷水| 99re66在线观看精品免费| 高清成年美女网免费视频| 久久系列国产精品喷水| 九九精品视频免费观看视频| 香港三日本三级少妇三级66| 夜夜高潮夜夜爽高清完整版1| 韩国三级在线中文字幕| 亚洲国产日韩欧美精品| 日韩中文字幕dvd在线| 在线观看日本高清=区日本高清色| 真实国产老熟女…| 丁香五月七月综合激情| 亚洲色久悠悠影院AV在线| 在线欧美三级在线欧| 国产精品自在在线午夜免费 | 日韩AV电影久久精品| 日韩国产乱子伦视频| 亚洲精品1卡2卡3卡| 欧美少妇xxxx欧美少妇| 69精品在线观看| 日本不卡码在线网站| 久久久久久久久久久久精品| 极品尤物在线观看福利| 日韩丝袜美女视频一区二区| IGAO为爱寻找激情在线看| 国色天香在线观看免费完整版| 最好看的2019中文字幕视频| 中年熟女大保健私密按摩| 天天躁天天爽天天高潮| jizz大全日本护士喷奶水| 自拍偷拍网站| 一级a性色黄生活片| 国产精品久久熟女另类卡通小说| 377P日本欧洲亚洲大胆精品| 2020国自产拍精品网站不卡| 国产一区自拍网站| 影音先锋蜜芽视频| 日本女优天堂mv网站| 手机在线观看永久AV片免费| 色窝窝午夜福利视频| 国产生活片播放| 精品国产品香蕉在线,| 国产igao视频二区| 污污在线观看国产黑丝| 狼人色国产在线视频麻豆| 亚洲中文字幕日韩经典空组| 亚洲电影日韩在线高清va| 日韩精品青青久久久久久| 热99久久精品国产首页| 性爱一级欧美| 欧美破苞在线视频播放| chinese粉嫩高潮videohd| 国产在线qv| 国产富婆做全套视频高潮| 亚洲欧美一区三上悠| juzz国产精品| 午夜成午夜成年片在线观看| 沈阳45老熟女高潮| 久久呀视频免费| 91午夜激情电影欧美一区,二区| 18未满禁止观看黄瓜视频日本| 在线 午夜 制服 丝袜| 国产清纯美女爆白浆视频| 8x在线全国免费视频| 老妇女擦她下面的毛茸茸亚洲| 五十路熟女视频| 国内精品自线一区二区三区20| spank视频国产网站在线观看 | 97夜夜澡人人爽人人喊A| 极品粉嫩午夜福利在线播放| 国产国产人免费视频成| 日韩一区二区三区中文在线观看| 在线中文字幕有码中文| 非洲视频中文字幕在线不卡| 影音先锋日韩在线高清AV资源| 无遮无挡女白浆视频免费| jizzyou中国少妇高潮| 2020最新国产在线中文不卡| yy111111少妇影院在线观看| 在线观看激情小视频免费| 精品久久久久久久久久久AⅤ| 久久精品免费一区二区| 韩国三级大全久久网站| 在线看片免费人成视频一级| 国产高清视频在线观看完整版| 日产国产欧美高清一区| 2021在线亚洲| 99久久婷婷国产综合亚洲| 亚洲最大网在线| 2021亚洲阿V天堂在线观看| 日爽尤物视频| 美女视频黄频大全免费的| 欧美日韩中文字幕一区二区久久| 97人人视频波多野结衣蜜月| 好深啊好涨好硬叫床| AV天堂一手机版色瞇| 又爽又黄免费的视频| 中文字幕人成乱码中国| 欧美激色第一页| 亚洲依依人网| 偷偷鲁偷偷鲁综合网站| 亚州不卡網站| 丝袜足午夜福利丝袜在线观看| 草草热草在线9| 夫妇交换聚会群4P大战| 精品水蜜桃AV网站免费| 正在播放漂亮少妇欲求不满| 正在播放国产系列| 日日噜噜噜夜夜爽爽狠狠| 永久免费的AV手机在线看| 亚洲人成电影网站色WWW| 老师在办公室被躁在线观看| WWW电影精精国产| 丁香五香色天堂网| 又粗又长又爽又大高潮视频 | 九九99女女| 午夜不卡片免费视频| 各种姿势玩小处雏女视频| 国产精品一区二区久久不卡| 国内精品久久久久久搜索动漫| 精品久久久久久中文齐齐| 2021久精品视在线视频| 粉嫩极品美女国产在线观看| 最新日本免费一区二区互动交流中心| 中国男同GayAv网站| 深一点~我下面好爽视频| 精品偷拍各种美女嘘嘘| 亚洲伊人久久网| 性色一区| 亚州一区二区| 在线免费肉动漫福利导航| 夜色爽爽爽私人影院| 成 人免费 在线观看| 亚洲人亚洲成综合网站_亚洲| 国产女人叫床高潮大片| 老司机深夜性爱一区二区三区| AV在线网站一区二区三区| 91尤物视频在线| 精品第一国产综合| 久久国产自偷自偷免费一区调| 欧美日韩国产在线二区| 国产69精品久久| 国产午夜亚洲品不卡在线观看| 青草久久久国产线免费| 你懂的国产呦系列免费网站| 色多多看片导航| 曰批全过程免费视频观看软件下载| 国产69精品网址| 一进一出一爽又粗又大视频| 男人j进入女人j内部免费网站 | 日本在线播放| 欧美、另类亚洲日本一区二区| 啊啊啊我想要天堂| 正在播放国产精品| eeuss影院www在线观看免费| 二区三区高H| 色综合久久熟女| 午夜热情影院免费观看| 国产国拍亚洲精品永久软件| 黑人上司粗大拔不出来电影| 日本公厕所撒尿高清视频| 精品国产麻豆免费网站| 国999久久高清免费观看| soe-224一区二区三区在线| 丰满少妇被猛烈进入动漫| 在线激情视频观看黄| 干到爽死了视频| 亚洲乱理片在线观看中字| 日日躁欧美老妇| 国产性色AV免费在线观看| 荡女高中生蒋雅雅末班车被吸| 久久国产热这里只有精品| 久热香蕉在线视频免费版| 亚洲综合一本色一区| 国产猛男猛女超爽免费视频| 日出水了特别黄的视频| 老子影院午夜伦手机不卡国产| 2022AV天堂高清视频在线| 少妇波多野结衣15P| 青青草原伊人AV网| 午夜aa视频| 日本高清不卡免费一区二区| 欧美AⅤ在线观看| 亚洲第一AⅤ在线| 久久激情五月婷婷字幕| h免费观看高清网站视频97| mm131在线观看福利| 综合Av一区| 德国高清性色生活片| 嗯啊~流白浆视频| 国产又色又爽又黄好看的视频| 好紧我太爽了视频免费国产| Jk美腿美女被狂躁长视频| 又黄又爽又色的黄裸乳视频| 亚洲蜜芽在线精品一区| 久久久一本美女| 白俄罗斯毛茸茸bbwbbw| а∨天堂网地址2020免费 | 中国同志GAY片在线观看| 岛国免费动作片AV综合久久AV| 激情床戏,男人的天堂| 中国一级特黄大片免色| 国产xo免费视频在线观看| 呦男呦女精品视频| 国产一区自拍网站| 波多野结衣免费看AV片| 一级特黄aaa大片兔费| 国产chinesehd精品| 国产旧里番在线观看| 尤物YW193在线视频| 国产Av剧情电影院| 久久久久夜夜夜综合国产| 国产尤物福利在线观看| 偷拍与自偷拍亚洲精品农村的| 69影院精品性视频| 亚洲欧美人成网站在线观看看| 午夜福利影院网址| 伊人久久免费综合视频| 国产丝袜被操视频国产在线观看| 国产精品亚洲αV天堂2021| 伊人丁香综合在| 狼人在99色| www.伊人五月天| 女人腿张开让男人桶爽肌肌| 在线看AV天堂| 热99久久精品国产首页| 自拍欧美人类综合在线| 亚洲十五区在线| 国产一区二区三区欧美亚洲| 97久久久亚洲综合久久| 天堂网在线WWW在线资源| 完整版免费AV片| 国产脚交榨精视频| 亚洲精品免费官网| 嗯…啊 摸 湿 内裤 视频免费无遮挡| JIZZ国产免费观看黄级AV片| 女百合精品久久| 2020年国产精品午夜福利在线| 亚洲午夜AV福利| 国产精品一区二区三区97视频| 午在线亚洲男人午在线| 野草社区在线观看免费视频| 午夜精品同性女女| AV网站免费线看精品| 国产h在线看| 国内精品视频一区二三区不卡| 久久精品国产精油按摩| 国产末成年女AV片| 综合图区亚洲欧美自拍| 欧美大BBBB流白水| AV理论片在线看| 精品水蜜桃AV网站免费| 乱码精品一区二区三区| 在线天堂资源最新版| 在线视频资源你懂的| 嗯啊嗯啊不要午夜免费福利视频| 亚洲欧美日韩国产精品专区| 国产肉丝袜视频在线观看| 亚洲欧洲人体超大胆露私| 草草线在成年在线视频| h成年动漫在线免费观看| 亚洲春色国产乱伦| 扒开美女的下面喷潮视频| 影音先锋在播放资源站| 久久99久久久久久齐齐 | 在线观看免费刺激视频| 日本东京A∨在线视频网站| 亚洲有码AV中文字幕| 大学生无套流白浆堵住| 日本护士吞精囗交图| 福利网站欧美版| 久久女女热精品视频| 杨幂腿张开再深点好爽视频| 亚洲三级在线看久草| 很狠鲁97五月天| 久久精品久久精品中文字幕| 日本免费一区二区三区最新| 国产免费观看调教网| ā片在线观看免费观看| 中文字幕丁香五月天| H片免费播放| 日本卡一卡二三区| 大象焦伊人久久综合网| 在线香蕉一区二区三区| 办公室揉着她两个硕大的乳球| 真人XO无遮挡gif动态图图| 久天啪天天久久99久久| 一区二区女优| 一级丰满少妇按摩| 亚洲国产精品久久久天堂| 中文免费乱理伦片在线观看2018| 日本高清在线观看免费视频| 福利视频私拍| 午夜喷水福利视频| 激情四月婷婷综合| 一本大道手机在线看| 国产不卡中文AV麻豆| 欧洲性XXXX免费视频在线观看| 亚洲国产精品久久一线app| 中出高潮了中文字幕| 黄肉视频在线免费播放| 高级会所口爆吞精在线观看| 大战丰满肉感熟女一区二区| 东北少妇中文字幕无线乱码| 欧美 亚洲 精品 三区| 国产精品迪丽热巴在线观看| 系列一区二区水蜜桃| 国产最大精品免费AV电影网站| 老熟女乱了伦| 国产精品www久久| 在线亚洲视频影院网址| 波多野结衣一区二区三区免费| 国产、亚洲、欧美精品一区二区三区| 99久久99视频只有精品| 日本特黄特色大片免费视频老年人 | 猫咪www免费人成网站 | 国产精品h在线观看尤物| 中文字幕一二三区码| 久久大香萑太香蕉| 欧美激情A在线观看| 日韩精品一区二区三区中文不卡| 国产欧美日韩高清不卡| 亚洲一区julia在线播放| 亚洲成情网站| 国产十次啦综合中文在线| 99热这里只有精品6国产免费| 中文字幕大屁股熟女乱| 阿娇视频国产精品久久| 亚洲成AV人在线观看橙子| 中国久久精品一级c片| 久久久久久久久久久久精品 | 大陆老熟女自拍自偷 | 女b被啪到深处男吸奶动态图| yy111111少妇欧美| 未满岁18在线观看国产| 夜夜捅视频| 亚洲一区肉欲在线| 在线观看免费AV网色多多| 国产女人叫床高潮视频在线观看| 国产欧美日韩在线精品| 半夜他强行挺进了我的体内| 国产精品VA在线| 久久影院狼人影院| 宅男色在线网站| 亚洲国产精品综合野草| 国产原创精品国产专区| 狠痕鲁2021国内揄拍国内精品| 激情综合色婷婷激情丁香| 99青草精品38国产| 在线观看亚洲最大成年网址| 伊人久久大香线蕉午夜| 日韩在线AⅤ视频| 亚洲国产人成在线观看69网站| 白丝脚一区二区三区| 2019中文字字幕在线观看| 中文字幕专区一二三| 国产亚洲日韩在线一区二区三区| 亚洲青青优女在线| 夜夜春视频| 欧美综合图区亚洲综合图区| 国产一卡二卡三卡四卡视频版 | 欧美女同视频网站在线观看| 成年网站未满十八禁,免费看| 国产无遮挡又黄又大免费视频| 青榴社区A视频在线观看| AV日韩精品久久久久久| 精品白丝导航| 另类亚洲其他中文另类| 高级会所口爆吞精在线观看| 国产午夜成人免费啪视频| 在线观看男女AV免费网址| 国产自愉自愉免费精品七区| 在线观看免费的成年网站| 人在线成免费视频性生大片免费观看 | 国产小呦泬泬99精品| 白衣女奶水狂喷在线观看| 欧美一区国产二区在线观看| 久久久精品2019中文字幕之3| 97视频热人人精品免费| 国产免费午夜福利在线播放11 | 2020最新国产在线中文不卡 | 大伊香蕉在线精品视频| 香港三日本三级少妇三级2021| 亚洲网在线观看| 成年成年动漫永久免费| 国产精品视频白浆| 一个男孩子被5个男孩子淦哭| 伊人久久大香线蕉综合爱婷婷 | 国产AV女人的天堂| 国产精品igao| 大成色站www| 国产特级全黄一级毛卡片| 国产高清午夜| 亚洲欧美一区三上悠亚在线| 国产jlzz jlzz jlzz免费看| 国产AV女人久久精品| 午夜合集欧美在线观看| 国产一级午夜三区| 宝贝你居然没有穿奶罩| 中文字幕一区二区精品区| 2021给个最新网站青草视频在线观看| AV女天堂| 国产另类视频一区二区| 九月丁香色婷婷| 抱姝妺A网免费| 亚洲美女美妇久久字幕组| 午夜福利试看120秒体验区| 成年男人深夜在线视频| 1区1区3区4区不卡乱码在线播放| 淫秽一区二区三区| 久久中文字幕国产情侣| 色爱综合区图片| 狠狠综合久久久久综合网小蛇 | 国产亚洲日韩AV一二区| 国产小呦泬泬99精品| 国产360激情盗摄一区高清区| 丰满的继坶3中文在线观看| 在线看美女那个网址| H动漫精品视频网址| 亚洲高清AⅤ日本欧美视频| 又爽又高潮的视频国产| 久久久的高清视频网| 久久香蕉国产线精品| 日本最新免费区中文| 春色福利导航| 亚洲欧洲高潮| 高潮在线看十八禁| 渔夫床满艳史hd高清在线直播| 羞羞午夜福利院免费观看日本| 东京干男人都知道视频| 亚洲色动态视频| 国产精品日韩AV一区二区三区| 大香伊蕉99大香伊蕉免费视频| 亚洲国产精品综合野草| yw193国产在线观看| 亚洲色窝网| 国产综合久久久久精品| 99在线热播精品视频| 奇米影视777四色狠狠| 国产免费破外女视频| 国产V免费在线观看| 欧美伊人亚洲伊人色综| 欧美亚洲春色校园小说图片区| 国产精品三级在线不卡| 啊高潮在线| 国产极品24p| 成年人久久免费小视频| 果冻传媒麻豆系列在线观看| 国产迷晕三个美女的网站| 91老肥熟露脸| 国产精品jizz视频国产y网| 欧美性爱浪潮99视频网站| 亚洲最大在线视频网站| h啊精品亚洲| 亚洲乱码专区一区二区三区四区| 亚洲色大成网站www91| 久久亚洲2019中文字幕| 国产乱视频网站免费| 制服丝袜美腿Av一级网站| 国产自偷在线拍精品热| 亚洲狂野国产AV| 久久久久久精品午夜福利| 在线看国产一区二区三区| 亚洲欧美视频艹逼嗯啊| 免费无挡无摭十八禁视频| 翁熄浪公夜夜欢| 久久精品福利中文字幕| 把JK制服美女高潮视频| 高潮国产白浆| 999精品视频| 岛国AV动作片免费在线观看| 曰批免费视频播放免费| 国产精品视频老师熟女| 最新日韩AV网址在线观看| 黄瓜视频在线观看| 亚洲美女AV免费一区| 国产自偷在线播放| 狠狠地综合| 中国6一12呦女精品| 最黄最刺激的网站| 亚洲五月天在线观看| 国产97精品乱码在线观看| 亚洲小电影你懂得| 亚洲一区二区三区中文字幕 | 日本无遮挡吸乳视频在线观看| 啊好深啊好大午夜视频麻豆| 国产精品久久久久久久久岛| 白丝jk在线后入| 日本特黄特色的大片观看免费视频| 成年人在线观看福利小视频| 337p西西人体大胆搬开下体| mm1313国产韩国亚洲| 国产性情精品在线| 琪琪777午夜理论片在线观看播放| 国产高清一区二区三区直播| 97精品久久天干天天| 18久久一区二区| 女人喷潮免费视频| 久久网站亚蕉| 国产精品自在线拍国产手青青机版| 三上悠亚AⅤ香蕉网在线观看| 3d动漫黄动漫视频网站| 嗯啊在线看网站| 国产白嫩美女在线观看| 国语对白国产乱子伦视频| 中文字幕视频精品| 777电影院米奇888| 高潮国产喷水视频| gay在线观看| 国产天堂网站麻豆| 久久综合97色| 一级福利午夜片| 天天爱天天做久久狠狠做频道| 内地china麻豆videos| 麻豆国产AV床下闺蜜| 成人免费网址在线观看不卡| 野草视频在线观看免费播放 | 欧美精品v国产精品v日韩精品| 办公室丝袜秘书好爽好紧视频 | 国产精品九九一区视频| www123国产免费自拍视屏| 又大又硬又黄的免费视频,| 伊人一道本东京久久人爱| 在线看揉美女胸的免费网站| 妺妺窝人体色www在线直播| 久热香蕉在线播放| 亚洲精品视频播放h| 进去粗粗硬硬紧紧的好爽在线视频 | 精品久久久久久国产张柏芝 | 国产中出AV在线| aaa爽爽爽片在线观看| 白浆 日韩| 天天影院色香综合| 欧美国产综合亚洲91| 业余 自由 性别 成熟视频 视| 正在播放国产水嫩美女叫| 国产偷V国产偷V亚洲高清| 舔女生下面喷水视频在线观看| 亚洲理论片| 1313福利看看| 又黄又爽又猛的免费视频| 波多野结衣琪琪网| 张柏芝 欧美 一区 二区| 国产在线地址一| 白丝白浆app| 午夜性爱视频| 最新亚洲中文AV在线不卡| 少妇视频网站导航| 日本湿乳视频| 91亚洲国产三上悠亚在线| 亚洲欧美日韩成人一区| 国产亚洲精品美女久久久久久| 观看在线人成大全黄| 国产午夜福利亚洲第一不卡| 国内自拍偷国视频系列无| 中文字幕A∨色在线视频| 日本在线不卡高清一区二区手机版 | 成人亚洲爱情岛论坛在线观看| 在线观看午夜福利片日本| 一区私拍国产| 亚洲中出AV| japanesetube日本护| 国产呦精品系列在线播放| 国内私拍哺乳精品视频| 韩国午夜理伦三级好看| 亚洲国产aⅴ综合网| 韩国福利专区在线观看| 黄瓜视频在线观看欧美| 国产亚洲日韩欧美另类丝瓜| 国内永久福利在线视频在线观看| 欧美亚日韩在线日本在线| 亚洲欧美激情一一区二区三区| 国产aⅴ一区二区三区片| 亚洲五月丁香综合图波多野结衣| 又黄又爽的动漫视频网站| 亚洲国产福利播放| 尤物在线精品视频免费看| 荡女高中生蒋雅雅末班车被吸| 2022国产在线最新视频| 久久亚洲国产精品| 国产人在线成免费视频| 亚欧视频高清在线播放| 午夜福利亚洲精品| 大杳焦伊人久久综合福利| 日韩激情无遮掩视频| 午夜福利频道国产区| 精品国产麻豆免费网站| 亚洲h色在线网站| 大香伊蕉国产网站| 三级在线w网站| 日本爽快片18| 河南熟女露脸高潮| 国内永久福利在线视频图片| 午夜福利亚洲老妇看片| 新mm1313午夜福利视频| 国产99久久亚洲综合精品| 午夜福利亚洲主播国产| 99热这里只有精品6国产| 193AV尤物影院在线观看| 一区二区三区少妇| 波多野结衣被操| 紧身裙女教师波多野在线| 国产丰满大波大屁股熟女_| 无遮挡h肉动漫在线播放| 久久这里有精品15一区二区三区| 亚洲色大成网站www成永久网站| 亚洲日本久久久久| 国产极品白丝后进在线观看| 久久久综合九色综合中文网| 在线激情欧美日韩| 成人国产精品日本在线| 国产AV现役女高中生无庶挡| 久久综合AV| 波多野结衣丝袜视频| 高清在线观看视频BBXX| 第一福利视频网址导航| 爱做综合网| 俺去啦俺来了| 两根粗大噗嗤噗嗤欧美精品| 亚洲一区二区播放| 在线欧美乳| 99精品视频免费国产| 亚洲失禁一区二区| 成视人a免费观看 视频| BAOYU131永久免费视频| 手机在线播放亚洲国产三区| 亚洲一级特黄大片| 禁止18点击进入在线看片尤物| 午夜免费福利网址| 国产网红女主播精品视频| 国产美女粉嫩泬免费播放| 欧美又大又粗午夜剧场免费| 中文字幕肉感巨大的乳专区| 日本天堂在线丝| 亚洲免费Ⅴa视频网站| 色五月六月| 精品综合久久国语中文字幕| 国产japanese在线观看| 女人喷液抽搐高?频| 亚洲欧洲闷骚AV少妇影院| Jk美腿美女被狂躁长视频| 疯狂做受dvd播放免费| 亚洲AV制服丝袜日韩高清| 依欧美视频| 国产亚洲精品第一综合| 8x免费视频网站| 五十路熟女亚洲专区| 极品美女冒白浆视频| 乱肉合集乱500篇小说丹丹| 九月天色色婷婷| 中文字幕 国产精品| 国产美女喷蓄高潮| 五月网站在线观看| 午夜福利视频网| a级国产乱理伦片在线观看| 国产精品区一区第一页| 亚洲天天堂在线观看| 在线男女激情网站| 2019亚洲va在线va天堂va国产| 亚洲亚洲人成综合网站图片| 97se亚洲综合自在线| 99热国产这里只有精品| 日本女人喷液抽搐高潮视频| 五月丁香婷婷综合激情| 女人无遮挡又爽又刺激的视频| 草裙社区免费视频一二三区| 欧美日韩国产一区| 白浆横流XVIDEOS| 久热香蕉在线精品视频播放| 永久免费AV在线影院| 亚洲情a成黄在线观看动漫| 欧美精品九九99久久在免费线| 国产在线看片自拍| yy111111少妇网| 97se亚洲国产综合自在线观看| 一级免费无遮挡少妇出进连连高潮完整视频 | 白丝高中生被输出视频高清| 嫩草亚洲精品在线观看 | 又湿又黄又粗又爽在线看| 午夜影院亚洲视频| 秋霞导航一区二区| 狼色在线播放一区二区精品视频| 狠痕鲁2021国内揄拍国内精品| 性久久久久久| 亚洲第一页呦女| 伊人熟女少妇| 亚洲一区二区三区香蕉| 16女下面流水不遮视频网站| 一色屋精品视频在线观看免费| 久久亚洲道色婷婷| 精品国精品国产自在久国产不卡| 成熟女人色惰片免费| 亚洲视頻4438| 啊~cao死你个小sao货视频| Av网站在线观看手机版| 亚洲午夜成人AV电影| 五月综合缴情综合小说| 国产青草视频在线观看| jijzzizz老师出水喷水多毛| 影音先锋色天天| 久久偷拍视频SPA| 在线欧美96…| 少妇福利水多多| 成年奭片免费观看视频天天看| 一本色道国产在线观看二区| 亚洲色大成网站www永久一区| 大学视频高潮久久| 亚洲欧美人兽在线| 亚洲第一AV国| 久久精品一本到99热免费| 国产小屁孩cao大人视频网站| 啦啦啦www在线观看免费| 午夜视频污污在线观看黄| 久久亚洲国产中字| 好吊妞视频这里有精品一| 在线 欧美 中文 亚洲 精品| 粗暴玩虐蹂躏性奴多p视频| 精品国产不卡不卡一区二区| 久久久久精品暗网| 亚洲网友偷自拍| 国产黑丝在线播放| 2020最新午夜福利视频合集| 真实偷窥艺校厕所嘘| 91人人捏人人模人人爽| AV免费资源网站在线看| 国产精品白丝JK白袜喷水视频| 黑人chinese中国china国产| 国产精品久久久久9999| 野花视频在线观看最新免费3| 成人无遮挡肉动漫网站| 亚洲国产高中生精品| 成 人SM 在线播放| 77P欧洲日本亚洲大胆| 又黄又猛又粗又大视频| 欧美三黄在线视频| 97日日碰日日摸日日澡| 亚洲男人的天堂在线aⅴ视频| 国产福利永久在线视频无毒不卡 | 少妇饥渴偷公乱视频| 久热香蕉在线精品视频播放| 制服丝袜美腿在线播放| 在线观看人成视频中文字幕| 在线天堂网WWW| 波多野结AV系列一区二区| 97色伦午夜国产亚洲精品| 国产美女羞羞| 巴西女人狂野甡交| 久久亚洲aⅴ精品网站| 精品视频一区二区三区不卡| 亚洲精品人成网线在播放va| 亚洲图亚洲色成人综合网| 亚洲技巧在线视频激情 | 波多野结衣丝袜视频| 很黄很色很刺激的免费网址| 午夜少妇翘臀福利视频| 国产特级婬片免费观看| 张筱雨人体337p人体 | 自拍欧美人类综合在线| 永久看日本大片免费| 国产免费一区二区三区VR | 自拍少妇综合网| 国产h视频高清在线看| yyy国产在线视频| 国产鲁鲁视频在线观看| 国产被弄到高潮在线观看| 久久网站免费观看| 五月香六月婷婷激情综合| 波多野结衣车内乳精在线播放| 粗大猛烈进出视频高潮| 深夜美女福利视频| 野外巨胸喷奶水视频www网站| 国产女人水真多| 农村老头o|dman幸福老人| 久久精品色老| 又爽又硬出湿水免费视频| 亚洲电影天堂在线国语对白| 欧美老妇乱惀| 国产制服丝袜在线观看| 绝对真实偷窥| 3Dh版动漫视频在线观看| 国产色老太色老太在线视频| 久久综合网天天五月天丁香婷 | 无套白浆农妇大屁股| 9cao在线播放精品日韩| 久久精品国产99国产精品| 国产刚刚发育被强j在线| 成 年 人 黄 色 网 站 大 全| 在线观看国产精品普通话对白精品| 麻豆AV 在线| 日韩精品激情h| 又黄又爽的视频真人版| 日日日噜噜噜厨房| 啊,嗯,好舒服啊午夜福利| 超97免费视频在线观看| 嘿咻动态图超猛烈视频欧美| baoyu222国产精品| 16女下流水视频| 69久久福利窝窝网| 香蕉在线视频综合网| AV人摸人人人澡人人超清下载| 久操 国产精品| 在线观看扣喷水大学生| japanese国产中文在线观看| 免费喷乳视频| 2021中文字字幕永久在线| 国产无套女视频| 亚洲日韩国产欧美| 国内精品自线一二三四区| 99re热这里只有精品| 国产偷v国产偷v亚洲| 真实偷窥艺校厕所嘘| 高h美女视频在线观看| 真实的国产乱XXXX在线| 99尹人香蕉国产免费天天拍| 亚洲一本之道高清在线观看| 在线观看亚洲AV每日更新| 日日摸夜夜添夜夜添国产91| 国产精品不卡无毒久久久久| 中文字幕欧美日韩一区二区三区| 国产曰的好深好爽免费视频| 成 人H 动漫在线视频网站| 亚洲欲色自拍图片区| 亚洲精品18p| 亚洲国产线看观看| 最新国产一区二区三区理论片| 白衣女奶水狂喷在线观看| 在线观看AV里番的网站| AV天堂色中色| 国产香蕉尹人在线视频你懂的| 国产无遮挡又黄又大免费视频| 中文字幕aⅴ一区,二区| 国产69成人精品视频免费| 亚洲综合天天夜夜久久| 99久久久精品免费香蕉| 4438亚洲五月六月丁香缴情| 激情试看60秒做受小视频| 国产熟女BBXX| 亚洲欧美另类在线图片区| 18美女操污污污污污在线观看免费网站| 最新国产乳头打孔视频欧美| 国产午夜一区| 欧美xxxx狂喷水| 在线欧美精品视频小说二区| 又大又硬爽个够免费视频| 亚洲国产精品嫩草研究院 | 高潮无遮挡猛烈动态图国产片| 在线视频亚洲久热| 国产V免费在线观看| 国产无套在线观看视频| 色爽爽网站免费看| 2012年中文字幕在线中字| 被几个人绑起来玩到高潮| 夜夜高潮夜夜爽高清视频一| аⅴ中文天堂最新版在线| 国产sm女女调教女m视频在线| 在线观看免费国产小屁孩cao大人| 97色色五月天| 国内熟女少妇一线天| 国产美女喷蓄高潮| 国产萌白酱在线一区二区| 中文字幕va欧美精品| 亚洲色欧另类欧美| 又大又粗又黑又硬免费视频| 东北女人的毛黑浓密水多| 又黄又刺激又粗又硬又大视频| 亚洲嫩模喷白浆在线观看自拍 | 亚洲综合憿情五月丁香五月网| 久久狠狠视频| 午夜福利亚洲自偷自拍| 亚洲快速不卡的视频| 污黄尿尿视频在线观看网站| 亚洲精品综合色区二区| 妺妺窝人体色www在线| 久久99一二区免费视频| 又色又爽又粗的少妇视频| 美女扒开粉嫩尿口的照片| 日韩AV免费| 99久久免费视频播放99 | 阿v网站在线观看视频| 国产女人婷婷| 少妇下面好紧好湿视频| 久久免费老师小说视频| 视频一区二区三区四区,久久免费视频 | 欧美日韩国产综合新一区| 国产精品三四区| 精选麻豆国产AV| 2022AV在线免费观看| 亚洲在在线观看免费视频| 最新AV女人的天堂| 99久热只有精品视频在线17| 边亲边摸边扎视频很爽| 欧美精品一区二区精品久久| 久久香蕉国产线看观| 五十路熟女俱乐部| 天天AV天天翘天天谅网国产| 屁屁影院国产| 五月天激情伊人| 亚洲成a人片| 浪友视频在线看色| 呦男呦女精品视频十区| 久久久私拍视频| 在线日亚洲欧美视频 | 各种姿势玩小处雏女视频| 国产激情地址| 成本人动漫免费网站免费观看| 欧美拍拍无挡视频| 国产免费AV在线线观看| 就去吻在线看亚洲中文| 久久婷婷人人澡人人爽人人喊| 亚洲人成网站在线无毒不放 | 亚洲四区| 狂揉美女胸部免费AV网站| 亚洲免费福利视频一区二区三区| 亚洲中文字幕在线不卡电影正版| 老司机官方福利视频导航大全| 天堂网www 在线网| 一级看片免费视频囗交| 亚洲天堂青青| 中国少妇视频导航| 91麻豆精品国产自产| 国产精鲁鲁网在线视频| 国产青年GAY同男视频迅雷下载| 自偷拍自亚洲图| 男高中生男男GV在线| 风间亚洲中文字幕一区| 性色国产网站| 国产精品夜色一区二区| 成人综合影院| AV美女免费看美女免费看| 日本在线观看| 男男春药禁止高潮调教play| 国产午夜精品福利在线观看| 性色AⅤ免费视频| 麻豆久久五月国产综合| 大又大粗又爽又黄的视频| 国产精品区最新视频| 成年大片免费视频播放二级| 精品国产精品久久一区免费式| 嫒呦碧在线观看| 白丝jk在线后入| 纯欲女生喷白浆视频| 国产邻居一区二区| 国产精品极品美女自在线观看| 色综合久久888| 中国老太卖婬HD播放| 国产2018大屁股福利| 久久99久久久久久齐齐| 国产00高中生在线网站| 综合图片亚洲网友自拍自偷| 国产精品ⅴa在线观看| 丁香六月色婷婷狠狠爱| 狼人AV在线网站| 中文字字幕在线中文人妖| 伊人久久精品一区二区三区| 又黄又性美女免费看视频| 久久精品亚洲成在人线AV麻豆| 色WWW视频永久免| 又大又粗又黄又刺激的免费视频 | 国产麻豆影院| 777欧美色影在线视频| 国产视频x爽死了| 少妇一区二区三区黄| 办公室日本肉丝OL在线| 天天爽天天碰天天上| 夜片视频在线观看视频| 91电影在线资源尤物| 激情五月天四房播播| 91桃色在线观看网站| 99精品热这里只有精品| 国产AV二女共侍一夫| 综合图片亚洲网友自拍| 精品国产自在久久成人| 国产污污污免费网站| 精品露脸国产偷人在视频| 国产美女被遭强高潮露开双腿 | 风间由美香蕉| 又大又粗进出白浆直流视频在线| 国内女人喷潮在线观看视频| 国产精品精品自在线拍| 天天影视久久综合网| 又色又污又爽又黄的网站, | 国产中文在线看| 人人专区人人免费香蕉| 羞羞影院午夜男女爽爽| mm1313亚洲精品国产| 亚洲人成网站999久久久全网| 国产又刺激又黄又免费的视频| 亚州精品影院| 在线视频网站www色| 色yy短视频免费播放| 国产高欧美性情一线在线| 成人动漫在线观看网站| 尤物在线观看免费网址| 97se亚洲综合在线| 艾草在线精品视频免费观看| 九九视频在线观看精品66| www.日韩女优视频| 欧美日韩中文一区| 日韩精品久久久久久影院| 国产福利小电影| 初毛初精小男生GV网站| 荫蒂添的好舒服视频| 熟女综合另类| 久久HEZYO久综合亚洲色| 国产女人天天弄高清免费| 亚洲尤物在线观看| h好大好粗好硬在线免费视频最新版| 大学生囗交口爆吞精在线视频| 九九爱这视频在线观看| 在线观看午夜免费网址| 欧美日韩视频777888| 粗 大 爽 水视频| 女被男啪到哭视频免费观看| A级完在线看完整版| 波多野结衣被操在线| 国产剧情精品aⅴ| 久久精品一区二区三区| 怡春院怡红院在线2017| 亚洲乱码字幕无线观看| 午夜不卡片免费视频| 在线看片免费人成视频久网app| 中国AAAA一级淫片| 亚洲国产午夜福利| 国产私拍福利在线观看视频| 一级调教视频| 黄频视频大全免费的国产| 国产XXXX做受视频HD| 日日穞夜夜添狠狠| 婬荡交换乱婬官网视频| 动漫精品第一页| 女人与公拘交的视频WWW| 好粗好硬好大在线观看视频| 国产精品第27页| 亚洲欧美国产青草青青| 夜鲁夜鲁很鲁在线视频| chinese国产在线看1819| 亚洲Av曰韩精品久久久久| 高h美女视频在线观看| 国产高潮抽搐免费喷水视频| 嗯啊不要 在线 一区二区 啊啊 不要| 关晓彤被调教出奶水的视频| 女女磨豆腐视频| 国产视频3| 色94色欧美SUTE亚洲线路一| 中文字幕一区在线观看视频大全| 中文字幕与邻居少妇性刺激| 日韩在线视频| 在线天堂最新版在线www| 淫色阁在线视频免费看| 国产美女白嫩在线播放| 亚洲国产欧美一区点击进入| 欧美日韩国产在线二区| 亚洲AV番号在线观看网址| 波多野结衣在线一区| 99久久er热在这里都是精品99| 正在看中文字幕强| 精品视频在线观自拍自拍| 亚洲日韩中文字幕在线播放| 8x永久视频| 久久久久国色AV免费看图片| 视频播放99re66在线| 91极品尤物国产在线观看| 久久久免费白丝精品 | 双乳被老汉揉搓玩弄在线观看| 亚洲免费五码高清视频| 中文字久精品免费视频| 欧美日韩亚洲综合图片| 国产69精品久久久久9999按摩| 伊人久久性爱导航| 欧美三级韩国三级日本三级| 美女下面流白浆视频网站| 又硬又黄又舒服的视频| а√天堂网www午夜在线亚洲| 18未成免费在线观看| 制服丝袜长腿先锋| AV看网站| 日本护士被弄高潮视频| 亚洲欧美精品综合欧美一区| 天天做天天爱夜夜爽夜夜爽| 强制高潮18xxxxhd日韩| YY1111111少妇影院免费观看| 黑人欧美又大的又粗| 99re66热这里只有精品3| 性色a| 精品久久杨幂国产杨幂| 国产愉拍视频在线观看| 日本少妇一级做α| 99在线观看视频这里只有精品| 裸身美女无遮挡永久免费视频| 九月婷婷激情网| 亚洲综合色88综合天堂| 午夜福利中文字幕第一页更新| 亚洲国产精品第三页| 中文字幕freehd| yy111111少妇影院日韩| 亚洲最大的网站在线观看| 亚洲成年人影院| 欧美区精品系列在线观看不卡| 霸道太子s调教小鲜肉gay| 国产好深好湿在线观看| 欧美最猛黑人xxxx猛黑| 在线观看免费高h视频| 亚洲中文字幕aV| 黑人30公分无套内谢中国少妇| 亚洲第一在线视频| 亚洲欲色自拍图片区| 久久免费99精品国产自在现线| 老汉A∨在线视频| 日产中文字幕在线精品一区| 又黄又刺激的网视频| h漫无遮在线观看免费动漫| 特黄一级毛卡片不收费| 亚洲人AV日韩精品久久久久久| 日日摸夜夜狠狠| 2019天天躁夜夜躁狠狠| 69老司机在线视频| 老师被操的在线视频色多多| 国产91免费资源在线观看| 国产六月婷婷爱在线观看| 国内自产少妇自拍区免费| 尤物在线91| 国产a免费一级视频| 国产JK制服丝袜午夜视频免费| 免费高H小视频| 午夜自偷自拍| 国产欧美一区二区精品性色| 久久伊人亚洲综合网| 窝窝午夜看片| 极品粉嫩午夜福利在线播放| 色综合久久中文字幕网| sm国产性爱在线视频| 曰批全过程免费| 亚洲熟女乱妇| 3D黄动漫在线h| 香蕉在线网站| 亚洲女人天堂2021| 色哟哟手机在线观看| 夜夜操夜夜艹夜夜操| 亚洲欧洲日产专区| 同性男男黄h片在线播放| 国产成a人片在线观看视频| 不卡日本高清精品免费观看| 国语自产精品视频在线九九| 亚洲国产一区二区三区网站| 国产麻豆色色资源| 欧洲真实呦女网站| 亚洲天堂日本在线中文字幕| XXⅩ中国免费视频| 天堂网在线WWW在线| 国产专区女高中生第一次在线| 老深湿影院在线观看AV| 国产一区自拍网站| 天堂网www在线最新版| 极品嫩模高潮叫床视频| 午夜1区2区3区4区5区入口| 国产精品V欧美精品∨日韩 | 国产女同在线观看| 国产亚洲天堂2021在线观看| 波多野结衣被干视频| 24小时日本在线观看视频网| 国内美女白浆视频久久| 99在线精品一区二区三区| 五月八月免费高清视频| 高潮抽搐流白浆视频在线观看| 国产乱子伦一区二区三区视频播放| 五月天精品视频在线观看| 另类色综合| 亚洲BBBBBXXXXX精品| 嗯啊日本在线播放| 亚洲激情婷婷| 欧美污污影院| 国产又色又爽又黄的视频在线观看| 一级线看片免费人成视频| 将军白浊粗大娇乳娇吟| 不卡视频无一区二区免费| 欧美多毛xxxxx性喷潮| 小草在线资源视频免费观看 | 激情六月婷婷| 国产黑黑色免费在线| 韩国小视频中文字幕| 亚洲一区在线观看尤物| 2019午夜三级网站理论| 中文字幕AV二区| 精品视频一区二区| 久久99国产精品久久99| 欧美性xxxx狂欢老少配| 男人J进女人屁爆水网站免费| 亚洲十次精品导航| 成熟女性祼交视频| 国产精品手机在线| 午夜福利视频免费导航| 亚洲新入口在线| 777视频精品在线| 西西午夜视频视频| 性爱视频免费大陆| 波多野结衣中文字幕免费视频| 熟女少妇正在播放| 亚洲欧美一区三上悠亚在线| 99国产在线综合网| 主播视频 国产一区| 凹厕所xxxxbbbb偷拍视频| 97人人澡人人爽91综合色区的句子| 男人扎爽进女人j网站免费| 亚洲免费H动漫| 免费一级特黄aa大片爽爽影院| 另类专区在线亚洲视频| 国产乱子伦精彩是白视频| 无遮挡的很黄很刺激的视频| 又黄又免费进去的网站| 岛国免费Aⅴ在线观看| 91精品在线观看女教师| mm1313国产韩国亚洲| 久久久亚洲网址| 抽搐一进一出试看欧美| 他扒开我的内裤强吻着我的下面视频| 扒下她的小内裤揉捏视频| 九九精品视频在线| 69久久福利窝窝网| 国产中文字幕喷水| baoyu尤物777永久免费| 亚洲色大成网站www时尚网| 亚洲天堂激情视频| 天天爽天天做| 综合图区亚洲欧美另类图片| 正在播放酒店约少妇高潮| 成在线人永久免费视频播放品赏网| 国产超短裙jk丝袜在线| 操我在线播放导航| 伊人五月天在线| 欧美性爱拍拍拍| 日韩XXXXX免费视频| 成 人免费视频播放器| 99久久αv免费视观看| 在线观看免费a∨网站| jk情趣白丝喷水视频| 色多多久久精品视频2022| 成人免费视频在线观看| 亚洲VA在线∨A天堂VA欧美V...| 伊人丁香五月激情视频| chinese国产在线观看| 有码中文字幕精激| 欧美天天综合色影久久精品| 翁熄粗大交换王丽霞| 我爱少妇导航福利| 久久1024| 久草户外爱AV| 国产免费女同互wei观看| 国产午夜a在线| 自拍偷自拍亚洲精品第1页| 狠狠久久久| 国产好舒服好爽好大视频| 不卡的高清AV影院| 国产精品 中文在线| 91精品国产91久久久久久久| 粗大猛烈进出偷拍高潮视频| 精品亚洲Aⅴ在线| 暖暖日本性爱视频| 真实男女x0x0在线动态图| 日本a∨精品一区二区三区| 福利私拍国产写真| 国语对白东北粗口熟女| 国产午夜福利免费视频网站 | gv在线观看网址| 9999爱国产不卡视频| 十八禁大全无遮挡真人视频| 狠狠综合亚| china13末成年videos野外| 国产丝袜美女一区二区三区 | 亚洲国产情侣自拍| 国产自产麻豆| 尤物视频在线播放你懂的| 99香蕉国产精品偷在线观看| 亚洲va在线va天堂XX| 一色屋精品视频在线观看免费| 99久久无色码中文字幕| 国产调教视频在线网站| 97电影院中文字幕| 草草视频免费观看| 久久久国产午夜理论| 韩国一卡二卡三卡四卡网站| 成熟女人色惰片免费| 最新国产午夜福利| AV国天堂网在线观看白丝| 久久午夜成年奭片免费观看| 激情五月天伊人久久| 中文字幕精品亚洲一区| 国产免费高清视频| 国产同性女女互磨在线播放 | 两性午夜爽爽刺激视频| 殴美AAAAA片| 成熟女性祼交视频| 成年女人永久免费观看视频| 国产亚洲成年网址在线观看| FreeXX性欧美最猛黑人| 国内精品大屁股白浆一区二区| mm131美女愛做視頻| 午夜男女XX00免费视频| 午夜免费体验30分在线看| 国产亚洲欧美一区二区三区| a网站在线观看| 国产又色又爽又黄刺激的视频在线| 国语自产偷拍精品视频偷拍| 国产无遮挡在线免费观看| 国产第一色多多| dy888午夜国产精品亚洲| 日本公厕所撒尿高清视频| 国产精品午夜福利2000集| 欧美久久综合日本| 国内极品白嫩精品| 18末年禁止进入免费网站| 出差被公侵犯在线观看| 又爽又黄又无遮挡网站图片| 欧美高清三区| 草棚 国产精品| xxxx明星性爱视频| 777奇米影院狠狠狠狠| 重口扩张女神roxyraye各种玩 | 国产黑色丝袜视频在线看网红| 性色AV在播| 2012日本中文字幕免费A| 午夜大片爽爽爽免费影院| 动漫女处被破的视频在线观看| 91黄在线观看国产亚洲| 一次迷晕三个国产| 国产网友愉拍精品视频手机| 波多野结衣多次高潮三个老人| 婷婷色香五月综合缴缴| 成 人动漫a v 免费观看| 五月天伊人激情视频| 青榴社区国产精品| 16女下面流水不遮挡视频| xxhd中国女人乱妇女光屁股野战| 日韩无遮挡激情视频| 亚州日韩穿丝袜在线| 亚洲图片在线电影| wwwx爽死了视频国产| 开心四房婷婷| 国产一区二区三四区不卡| 91精品国产福利在线观看| 久久久久精品日韩久久久| 最新日韩AV网址在线观看| 黑人大屁股ⅩXXXX| 女人喷液抽搐高?频| 波多野结衣系列一区二区三区| 青榴A免费在线视频| 尤物久久99国产综合精品网站| 2020每日更新国产精品视频| 日日拍夜夜嗷嗷叫视频观看| 性国产在线看| 亚洲欧美在线视频一区二区| 久久a免费视频| XXXXX国产乱子| 亚洲男同GAy作爱视频网站| 久久精品免费线同性女| 日本有码亚洲一区中文在线观看| AV天堂国产| 中文字幕亚洲资源| 伊人尤物在线| 亚洲图片第二页| 性情网站在线观看免费| 极品少妇中文字幕| ww视频美女在线播放| 中文字久精品免费视频| 最好看的2019中文字幕视频| 91极品尤物在线观看| 国产偷抇久久一级精品a| 激情福利在线| 最近更新资源中文字幕| 欧美日韩一区二区三区在线| 無碼一本| 国产香蕉国产精品偷在线| 福利视频在xx| 国产AV高清精品久久| 灌满精子的波多野结衣| 国产精品成年片在线观看| 亚洲国产V高清在线观看 | 亚洲日本成本人观看| 宝贝插你下面视频欧美亚洲| 欧美脚交视频在线观看| 国产精品第27页| 婷婷色在线视频极品视觉盛宴| 久久精品美女观看| 嗯~啊~网站视频| 亚洲香蕉网久久综合影院小说欧美贵妇 | 国产女厕所盗摄老师厕所嘘嘘| 粉色成年视频app在线观看| 波多野结衣一二区在线观看| 久久国产良品亚洲| 老女人视屏一区二区| 国产视频一区二区在线视频| 91尤物视频网| 久久久久久久熟女| 在线视频一区二区三区| 亚州熟女俱乐部| 夜夜香夜夜添夜夜摸| 国产高清精品一区二区三区| XX00美女高潮视频| 久久中文字幕系列| 中文字幕你懂的| 天堂网www在线中文字幕| 国产女同高潮在线观看| 光棍影院国产区| 好男人在线看片神马电影| 国产愉拍视频在线观看| 337p粉嫩日本欧洲亚洲大胆| 办公室午夜福利| 国产亚洲曝欧美不卡精品| mm1313做性爱在线观看| 色综合另类小说图片区| 国产的关晓彤AV在线网站| 亚洲11p在线| 伊人亚洲综合网| 日韩欧美—中文字幕精品| 国产校花视频在线观看| 亚洲色大成网站www九| 国产精品裸模私密视频| 粉嫩极品国产在线播放| 香蕉免费一区二区三区| 色吊丝永久性观看网站| 日本一三三区不卡视频| 在线2022Av高清| 中中文字幕亚洲无线码| 小蝌蚪国产精品午夜场| 很色的网站| 高潮娇喘抽搐在线视频| 又爽又黄无遮挡的女人视频| 2021国内精品久久久久久影院 | 国产十八禁视频在线网站| 亚洲天堂2021在线| 对白一区二区三区仑乱| 窝窝影院午夜看片| 一区二区三区a视频| 久久极品97| 亚洲一区二区狠干| japanese教师中文字幕| 激情 自拍 另类 亚洲| 欧美日产综合在线网| 亚洲成色在线网站| 色婷婷丁香九月激情综合视频| 亚洲国产精品大秀午夜在线| 2021年最新最全99九九视频高清在线| 国产尤物在线观看| 自拍 另类 综合 欧美小说| 白丝美女被内谢流白浆视频| 亚洲热网| 国产下药迷倒在线播放| 十八禁女子祼体网站| 动漫精品3d亚洲一区| 大屁股少妇性爱视频| 2021亚洲а∨天堂在线| 国产翘臀后进| 亚洲欧美日韩国产综合V| 英语老师解开裙子坐我腿中间| 精品亚洲综合2021| 制服第一页中文字幕| 亚洲美女18p在线观看| 老色鬼永久视频网站| 欧美性爱在线播放不卡| 久久国产精品嫖妓| 伊人五月婷婷综合| 中文字幕精品动漫一区| 国产精品99一区二区三区 | 国产精品11P| 国产一区二区三区不卡视频手机版| 日韩女同中文字幕在线| 一区二区三区 精品视频| 国产精品一级二级三级| 宅男噜噜噜66网站高清| 厕所偷窥撒尿wcpeeingtube| 69视频在线观看A片| 老熟女免费精品视频| 在线观看免费高清AⅤ片| 午夜免费A级福利片| 欧美les视频XXXX在线观看| 制服肉丝袜亚洲中文字幕| 91大神在线播放精品| 十八禁网站观看| 欧洲精品免费一区二区三区| 处破女视频免费观看亚洲| 亚洲AV天天做在线观| JIZZ丝袜老师国产在线观看| 久久综合视频免费不卡| 国语自产精品视频在 视频| JIZZ丝袜老师国产在线| 中文字幕一二三区2021| BBw下身丰满少妇18XXXX| 日本免费A级毛一片一时看片| 69堂午夜精品视频在线| 校园激情一区二区文学| 久久狠狠中文字幕2017| 最近更新在线第1页| 成年人电影网站| 色久窝窝| 国产熟女精品67194| 欧美成a人片| 动漫美女丝袜高潮白浆| 国产在线视频八区| 在线观看亚洲色自拍一区| aV忘忧草| 人c交zzzooozzzooo| yy1111111少妇影院看| 国产日本欧美三级频| 东北老熟女高潮嗷嗷叫视频| 又大又粗又湿的免费网站| 国产131在线视频免费观看| 亚洲色大成网站www永久软件| 成在线人免费视频一区二区| 国产精品白皙| 亚洲一区在线观看尤物| 久久国产午夜理论片| 十八禁视频网站免费| 亚洲揉捏视频| 国产大学生一区二区三区| 亚洲性日韩精品一区二区三区| 国产邪恶网站在线观看| 亚洲成Aⅴ人的天堂在线观看女人| 日本亚洲欧美在线视观看| 成·人免费午夜视频域名停靠| 超级AⅤ视播、| 中午字幕第二页| 亚洲天堂网在线观看| 亚洲视频男人女人| 国产精品白皙| 黑人粗长五月天在线观看| 国产尤物网站| 最新午夜国内自拍视频| 又大又粗又硬又硬免费日批视频 | 妺妺窝人体色www新址| 最新国产蝌蚪视频在线播放不卡| xfplay资源亚洲中文| 99热这里只有精品免费播放| 午夜亚洲国产理论片二级| CHINESE体育生露脸GAY| AV男人的天堂在线观看第三区| 白丝高中生在线免费看| 色欧美精品视频在线观看| 国产边高潮边打电话边出轨| 嗯~啊~哦~别~别停~啊视频| 久久福利青草狠狠午夜| 国产精品9999在线观看| 来吧天天影视色香欲综合网| YY6080福利午夜理论影视| 伊人大香线焦狠狠鲁的视频最快| 尤物Av永久网站在线播放| 一本大道高清本中文字幕| 久久996re热这里有精品| 尤物国产在线精品一区| 国产亚洲视频免费播放| 亚洲精品tv久久久久久久久久| 中国产XXXXAaaa18片| 亚色在线播放| 亚洲福利影院| 内蒙古老熟女爽的大叫| 香港精品在线播放| 小h片在线播放| 两个人看的www在线观看| 亚洲视频每日更新免费| 亚洲中文字幕日产乱码高清 | 人人射网站| 国产福利深夜挤奶| www.五月天| h国产小视频福利免费视频| 日本熟女 乱交| 国产美女高潮无套久久| 又粗又黄又猛又爽大片免费视频 | 国产1区2区3区4区不卡| 成年最新天天夜夜人人| 娇妻被朋友征服中文字幕| 边吃胸边摸下面网站免费| 欧洲男人与女人XX视频| 99久久国产综合精品女同| 新日本中文字幕在线观看| 久久99亚洲精品片片| 伊人亚洲日韩欧美一区、二区| 自拍肉在线观看| 2022AV免费在线观看| 白丝袜AV网站在线观看| 欧美精品v欧洲精品| 日本aⅴ精品中文字幕| 新婚少妇毛茸茸的性| 大伊香蕉AV最新播放| 92午夜福利视频动态图| 中文字幕亚洲精品第二页| 爆操大屁股熟女白浆视频| 国产美女高潮抽搐流白浆免费| 国产打屁股调教在线观看视频| 2022最新自拍视频在线观看| 国产欧美尤物视频| AV天堂久久天堂AV色综合| 尤物在线193| 九七理论97午夜在线观看一| 午夜福利动态图在线播放| 久久国产精品张柏芝| 成人a v在线视频| 好紧好湿太硬了我太爽了视频| 少妇被水电工侵犯在线完整版| 92午夜福利国产精品| AV国语一区二区三区| 电车美人强奷系列在线播放| 国产一级AV片免费观看| GV在线观看免费亚洲视频| 动漫精品3d亚洲一区| 老司机视频网站| 亚州动态图在线| 又爽又黄免费的视频| 欧美18一19seX性| 曰批全免费视频观看| 国产国拍亚洲精品午夜不卡| 亚洲欧美人兽在线| 亚洲国产综合精品2020| 国产在线播放线99香蕉| 中文有码亚洲中文| 国产美女弄出白浆| 亚洲五十路| 久久国产乱子伦精品免费丿| 国产萌白酱喷水视频在线播放| 丁香五月亚洲综合在线影院| K6官方宅男第一导航| 69男女性爱激情免费视频| 国产美女口爆吞精在线播放| 自偷自拍亚洲色| 好吊色午夜免费福利视频| 头埋入双腿之间被吸到高潮| yw193尤物网站在线观看| 国产综合视频一区二区三区| 美女高潮黄又色高清视频免费| 在线观看日本亚洲一区| 久久99国产精品二区抖音| 天天综合天天做站| 暴力强奷在线观看视频| 亚洲大片在线免费| 97午夜福利剧场| AV水蜜桃网站免费观看| 成年免费视频播放人69| 大又粗又爽又黄少妇视频观看| 丁香九月综合激情| 亚洲综合图片区自拍区| 亚 洲 成 人 网 站在线观看| 亚洲综合在线第五页| 五月婷哼亚洲激情综合网| 亚洲色大成网站www久久九九| 老司机一区二区在线播放| 国产揄拍视频在线观看激情五月| 国产欧美日韩亚洲中文一区| 亚洲精品综合久久中文字幕| 九九九午夜国产精品| 亚洲国产综合精品| 点击进入在线激情视频| 精品久久久午夜| 欧美日韩在线观看国产一区| 在线播放白浆四溢| 亚洲男同GAy作爱视频网站| 午夜福利国产精品久久熟国产| 狼人色香| 亚洲人体瓣开在线| 无夜性爱视频在线观看男男| 欧洲第一页浮力影院| aiai永久免费观看| 午夜精品自拍| 亚洲激情图黄| 性XXXX欧美老妇胖老太肥肥图片| 天堂在线最新版www国产| 美女被高潮在线播放| 国产AV嫩草研究院| 国内高清精品视频免费| 国产自产在线视频一区| 国产精品亚洲欧美大片在线看| 永久在线视卡须免费观看| 国产亚洲高清一区二区三区| 一次迷晕三个国产| Jk美腿美女被狂躁长视频| 国产情侣自拍网站| 高清午夜福利视频| 粉嫩喷水白浆在线| 亚洲精品有码在线观看| 天天狠天天透天干天天怕| 99视频在线精品免费观看6| 波多野结衣双飞视频| 理论片福利片在线观看欧美| 狠狠爱亚洲综合久久| 玩毛多妹子P在线视频| 韩国福利二区| 亚洲巨制Av剧情在线| 九九九免费观看视频| 久久综合亚洲色HEZYO国产电| 亚洲国产AV调教| 97电影院中文字幕| 日韩不卡免费视频| 尤物性视频在线播放| 精品国内在视频线2020视频在线看 | 手机在线看永久AV免费| 在线观看网站深夜3D催精| 97超级碰碰碰免费公开视频| 欧美嗯啊在线观看| 亚洲精品在线亚瑟视频| 成人三级视频在线观看一区二区| 777色在色在线播放免费| 尤物视频www| 在线看A∨中文字幕| 国产AV变态瑜伽老师| 欧美精品AⅤ在线视频| 国产AV麻豆精品原创| 日本久久久久亚洲中字幕| 好粗好深好紧免费视频无遮挡| 动漫男的把j放进女人的j动图| 国产真实乱系列2| 情艺中心国产欧美亚洲| 亚洲色大成网站www永久一区| 越猛烈欧美XX00动态图免下载 | 高h视频亚洲| 一个人看的免费高清www视频在线观看国产| 成年3d黄动漫在线观看| 亚洲网站地址一区二区| 综合偷拍亚洲综合图区高清 | 69堂在线视频亚洲天堂| 国产精品推荐制服丝袜| 欧美A性| 国产熟女高潮精品视频| 欧美play一区二区在线观看| 亚洲国产精品张柏芝在线观看| 2021AV天堂视频在线播放| 国产免费破外女出血视频在线观看 | 久操视频新免费伊人| 欧美中字一区日韩| 国产精品开放小视频| 国产精品喂奶95| 91在线视觉盛宴| 奇米影视第四狠狠| 小泽玛利亚 一区| 伊大人香蕉综合在线视频LD | 日韩yy1111111少妇影院| 亚洲国产欧美不卡在线观看| 99精彩视频看看| 中文字幕A∨色在线视频| 亚洲人成未满十八禁网站| 天堂网www 在线网| 自拍亚洲综合图区| 最新在线精品国产福利| 国产亚洲综合精品电影| 国产欧美日韩亚洲中文一区| 国产综合精品日本亚洲| 一区二区三区高清晰不卡免费视频| 影音先锋影视资源男人站| 亚洲五月天狠狠夜麻豆| 91尤物在线看片资源| 亚洲天堂国产| AV片在线看国产片无毒电影 | 狠狠操777| 久久免费看少妇| 欧美大黄免费观看视频| 久精品视频在线观看免费| 午夜美女一级A级视频| 殴美xxxxBBBB| 国产在线污视频| 成 人影片 免费观看10分钟| 极品少妇被猛的白浆直流| 欧美精品一区二区三区免费| 韩国激情高潮无遮挡hd| 国产无套乱子伦精彩是白视频下载 | 2021国产精品高清在线第一页| 阿娇13分钟作爱视频| 好紧国产免费观看视频| 中文在线日韩亚洲制服| 97日日碰曰曰摸日日澡| 国产尤物网站在线观看| 性日插爽视频| ijzzijzz精的女人美女| 校园激情一区二区文学| 国产在线不卡精品网站|