亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

基于SpringBoot的遙感影像共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

基于SpringBoot的遙感影像共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 1. 項(xiàng)目概述與核心需求解析1.1 這個(gè)系統(tǒng)到底要解決什么問題每年到了畢業(yè)設(shè)計(jì)選題季總有不少同學(xué)來找我聊——說學(xué)校給的選題清單里躺著一個(gè)“遙感影像共享系統(tǒng)”看上去跟普通的圖書管理、商品管理系統(tǒng)差不多但真打開參考文獻(xiàn)一看又是柵格數(shù)據(jù)、又是金字塔切片、又是空間索引直接被嚇退。這個(gè)基于SpringBoot的遙感影像共享系統(tǒng)從編號(hào)后綴來看就是很典型的Java畢業(yè)設(shè)計(jì)項(xiàng)目但“共享”這兩個(gè)字意味著它不只是做簡單的文件上傳下載更需要圍繞遙感影像的元數(shù)據(jù)管理、可視化預(yù)覽、權(quán)限控制等方面去設(shè)計(jì)這也是它區(qū)別于一般CRUD系統(tǒng)的關(guān)鍵所在。我說說我的理解。遙感影像這個(gè)東西本質(zhì)上是帶有地理空間屬性的大文件一張高分辨率影像動(dòng)輒幾百M(fèi)B甚至幾個(gè)GB直接扔到數(shù)據(jù)庫里肯定不合適也不可能像普通圖片一樣用img標(biāo)簽直接預(yù)覽。所以這個(gè)系統(tǒng)最核心的問題可以拆成三個(gè)第一影像文件怎么存、怎么管理既要控制存儲(chǔ)成本又要保證訪問效率第二影像的元數(shù)據(jù)拍攝時(shí)間、傳感器類型、覆蓋區(qū)域、分辨率、坐標(biāo)系等怎么結(jié)構(gòu)化存儲(chǔ)讓用戶能精準(zhǔn)檢索第三普通用戶能不能在線預(yù)覽大影像而不需要先把整個(gè)文件下載下來。如果把這三個(gè)問題想清楚了后面所有的編碼工作其實(shí)都是在圍繞它們做具體的方案落地。這個(gè)系統(tǒng)的目標(biāo)群體也很明確一類是產(chǎn)生數(shù)據(jù)的遙感數(shù)據(jù)生產(chǎn)部門比如某地理信息中心、某測(cè)繪實(shí)驗(yàn)室另一類是需要在科研或項(xiàng)目中用這些數(shù)據(jù)的高校師生、研究機(jī)構(gòu)。系統(tǒng)價(jià)值在于打通“影像數(shù)據(jù)入庫—元數(shù)據(jù)編目—在線檢索—權(quán)限化下載/預(yù)覽”的完整鏈路而不是讓數(shù)據(jù)躺在硬盤里成為孤島。1.2 關(guān)鍵詞拆解與邊界劃定我先把這個(gè)項(xiàng)目可能涉及的關(guān)鍵詞和技術(shù)邊界梳理一下方便后面每個(gè)章節(jié)按圖索驥關(guān)鍵詞對(duì)應(yīng)模塊說明遙感影像數(shù)據(jù)管理核心支持TIFF、GeoTIFF、IMG等常見柵格格式共享共享與權(quán)限包括登錄認(rèn)證、角色授權(quán)、影像公開/私有/指定共享SpringBoot后端技術(shù)基座負(fù)責(zé)接口層、業(yè)務(wù)層、持久層的整體架構(gòu)元數(shù)據(jù)檢索與管理拍攝日期、傳感器、云量、坐標(biāo)范圍等結(jié)構(gòu)化字段在線預(yù)覽可視化模塊提供影像縮略圖、瓦片加載、基礎(chǔ)地圖交互特別提醒一點(diǎn)畢業(yè)設(shè)計(jì)里做遙感相關(guān)系統(tǒng)的同學(xué)很容易被“空間分析”這個(gè)方向帶偏非要在系統(tǒng)里塞一堆GIS算法進(jìn)去比如NDVI植被指數(shù)計(jì)算、影像分類、圖形疊加分析。我見過好幾個(gè)項(xiàng)目做到最后論文寫得像算法研究系統(tǒng)本身連最基本的影像上傳和檢索都卡頓答辯時(shí)被老師一問數(shù)據(jù)流就答不上來。這個(gè)項(xiàng)目名稱里“共享系統(tǒng)”四個(gè)字已經(jīng)劃定了邊界——核心是管理與共享不是算法分析。空間分析可以做但只應(yīng)該作為附屬的小亮點(diǎn)絕不能搶了主線。2. 整體框架設(shè)計(jì)與技術(shù)選型思路2.1 為什么SpringBoot是畢業(yè)設(shè)計(jì)的最佳選擇先聊框架選型。現(xiàn)在后端技術(shù)五花八門有人用Python的Django、Flask還有人用Go的Gin但Java生態(tài)的SpringBoot依然是這個(gè)項(xiàng)目最穩(wěn)妥的主選。原因有三點(diǎn)一是市場(chǎng)驗(yàn)證充分。在各類企業(yè)級(jí)應(yīng)用里SpringBoot占據(jù)了相當(dāng)大的市場(chǎng)份額這意味著你遇到任何問題基本上都能在社區(qū)里找到解決方案而不是自己一個(gè)人對(duì)著報(bào)錯(cuò)發(fā)呆。對(duì)畢設(shè)來說“可完成”比“最先進(jìn)”重要得多。二是與前端、數(shù)據(jù)庫的集成成本低。SpringBoot自帶的Spring Data JPA或MyBatis-Plus能極大簡化數(shù)據(jù)庫操作Spring Security能快速搭建認(rèn)證授權(quán)體系內(nèi)置Tomcat讓部署也變得簡單這些都是畢設(shè)項(xiàng)目能按時(shí)交付的保障。三是后續(xù)可擴(kuò)展性好。等真正工作了你會(huì)發(fā)現(xiàn)大多數(shù)Java后端項(xiàng)目都是SpringBoot生態(tài)提前把SSM到SpringBoot的思維轉(zhuǎn)過來對(duì)以后的職業(yè)發(fā)展也是加分項(xiàng)。2.2 分層架構(gòu)單體應(yīng)用的邊界感我見過很多畢業(yè)設(shè)計(jì)項(xiàng)目一開始就想著微服務(wù)把系統(tǒng)拆成文件服務(wù)、用戶服務(wù)、檢索服務(wù)好幾個(gè)模塊結(jié)果開發(fā)一周之后發(fā)現(xiàn)光服務(wù)間調(diào)用和配置就能把人逼瘋。這個(gè)遙感影像共享系統(tǒng)用標(biāo)準(zhǔn)的單體分層架構(gòu)就夠了重點(diǎn)是在模塊內(nèi)部做好邊界分隔。我推薦的分層方式是這樣的Controller層只負(fù)責(zé)接收請(qǐng)求、參數(shù)校驗(yàn)、返回結(jié)果不寫任何業(yè)務(wù)邏輯Service層承擔(dān)核心業(yè)務(wù)邏輯比如影像元數(shù)據(jù)的組裝、權(quán)限校驗(yàn)策略、文件存儲(chǔ)的調(diào)度Mapper/Repository層只做數(shù)據(jù)持久化操作不關(guān)心上層業(yè)務(wù)DTO/VO層用于接口數(shù)據(jù)的傳輸和展示避免直接把數(shù)據(jù)庫實(shí)體暴露給前端工具類與配置層封裝文件處理、坐標(biāo)解析、JWT工具等橫切邏輯。這樣做的好處是答辯時(shí)思路非常清晰。老師問你“權(quán)限控制怎么設(shè)計(jì)的”你能直接說出是在Service層做了攔截校驗(yàn)還是用Spring Security過濾器實(shí)現(xiàn)的問你“文件存儲(chǔ)怎么解耦的”你能講清楚是通過策略模式在本地存儲(chǔ)和OSS存儲(chǔ)之間切換。這種“能講清楚”的能力很多時(shí)候比代碼本身更能體現(xiàn)你真正做了設(shè)計(jì)。2.3 技術(shù)棧全景圖我列一份參考技術(shù)棧清單供你選型時(shí)對(duì)照層次技術(shù)選型選型理由前端Vue 3 Element Plus LeafletVue 生態(tài)上手快Leaflet 輕量且支持影像瓦片展示后端SpringBoot 2.7.x穩(wěn)定版本兼容性好社區(qū)資源豐富ORMMyBatis-Plus代碼生成方便單表CRUD幾乎零SQL數(shù)據(jù)庫MySQL 8.x開源成熟InnoDB對(duì)事務(wù)和并發(fā)支持良好緩存Redis存儲(chǔ)影像縮略圖索引、登錄會(huì)話、熱數(shù)據(jù)緩存文件存儲(chǔ)本地磁盤 / MinIO畢設(shè)階段用本地即可預(yù)留MinIO切換接口權(quán)限認(rèn)證Sa-Token / JWT輕量級(jí)比Spring Security學(xué)習(xí)成本低很多影像處理GDAL / JTS / ImageIO讀取GeoTIFF頭文件信息、生成縮略圖給一個(gè)實(shí)操建議如果你對(duì)文件存儲(chǔ)到底用本地還是OSS猶豫不決就先用本地磁盤但一定把OSS的切換接口設(shè)計(jì)好。定義一個(gè)StorageService接口本地實(shí)現(xiàn)和OSS實(shí)現(xiàn)各寫一個(gè)類通過配置文件切換。這招在論文里寫“存儲(chǔ)策略的可擴(kuò)展設(shè)計(jì)”非常加分實(shí)際做起來卻很簡單。3. 數(shù)據(jù)庫設(shè)計(jì)與核心數(shù)據(jù)模型3.1 表結(jié)構(gòu)規(guī)劃影像元數(shù)據(jù)與其他業(yè)務(wù)表的關(guān)系數(shù)據(jù)庫設(shè)計(jì)是這種管理系統(tǒng)最見功底的地方也是答辯時(shí)老師最愛問的部分。我建議把核心表拆成以下幾種第一張是user用戶表字段包括id、username、password、nickname、avatar、role_type區(qū)分管理員/普通用戶/審核員、status、create_time。密碼一定要用BCrypt加密存儲(chǔ)千萬別明文。第二張是image_info影像信息表這是系統(tǒng)的主表承載遙感影像的核心元數(shù)據(jù)id主鍵original_name原始文件名file_path存儲(chǔ)路徑thumbnail_path縮略圖路徑sensor_type傳感器類型比如GF-1、Landsat8、Sentinel-2capture_date拍攝日期cloud_cover云量百分比resolution空間分辨率單位米coord_min_lon、coord_min_lat、coord_max_lon、coord_max_lat影像覆蓋范圍外包矩形坐標(biāo)coordinate_system坐標(biāo)系描述比如WGS84 / CGCS2000file_size文件大小band_count波段數(shù)量upload_user_id上傳用戶status審核狀態(tài)待審核/已發(fā)布/已下架view_count、download_count統(tǒng)計(jì)字段description備注說明。第三張是share_record共享記錄表。如果要做精細(xì)化的權(quán)限管理共享范圍不能只有公開和私有兩種要有“指定用戶共享”的中間態(tài)。字段包括id、image_id、share_user_id被共享人、share_permission預(yù)覽/下載、expire_time。第四張是download_log下載記錄表記錄哪個(gè)人在什么時(shí)間下載了哪張影像方便做數(shù)據(jù)溯源。第五張是operation_log操作日志表記錄登錄、上傳、審核、刪除等關(guān)鍵操作。這里有一個(gè)特別容易踩的坑不要把影像文件路徑直接暴露給前端數(shù)據(jù)庫只存相對(duì)路徑前端拼接完整URL時(shí)要通過后端接口做鑒權(quán)校驗(yàn)。否則沒有登錄的人只要猜到URL就能直接下載原圖共享系統(tǒng)的權(quán)限控制就形同虛設(shè)了。3.2 數(shù)據(jù)索引與空間檢索的取舍影像檢索是這個(gè)系統(tǒng)區(qū)別于一般文件管理系統(tǒng)的核心功能。在畢業(yè)設(shè)計(jì)這個(gè)體量下我建議做兩種檢索方式來組合屬性檢索按傳感器類型、拍攝日期范圍、云量、分辨率等元數(shù)據(jù)字段進(jìn)行組合條件篩選用SQL的where拼接即可空間范圍檢索用戶在Leaflet地圖上畫一個(gè)矩形框返回所有外包矩形與該矩形相交的影像數(shù)據(jù)。如果你的數(shù)據(jù)庫使用了MySQL空間范圍檢索可以直接用ST_Intersects等空間函數(shù)實(shí)現(xiàn)配合空間索引效果就很好了。如果你不想引入復(fù)雜的空間SQL也可以退一步用最小經(jīng)度小于框最大經(jīng)度、最小緯度小于框最大緯度之類的四條件相交判斷雖然不那么“專業(yè)”但實(shí)現(xiàn)簡單、運(yùn)行可靠畢業(yè)答辯完全夠用。我實(shí)際做過測(cè)試在百萬級(jí)影像元數(shù)據(jù)量的規(guī)模下加不加空間索引的查詢耗時(shí)差距能有幾十倍所以coord_min_lon這些字段上務(wù)必建聯(lián)合索引。4. 核心功能模塊與技術(shù)實(shí)現(xiàn)細(xì)節(jié)4.1 大文件分片上傳與秒傳機(jī)制遙感影像文件動(dòng)輒幾百M(fèi)B傳統(tǒng)的一次性multipart文件上傳方式基本不可行。一是后端內(nèi)存壓力大二是網(wǎng)絡(luò)稍有波動(dòng)就得重新傳。實(shí)際項(xiàng)目里我強(qiáng)烈建議直接上分片上傳斷點(diǎn)續(xù)傳。分片上傳的思路是這樣的前端把文件用File.slice按固定大小比如10MB切成多個(gè)分片每個(gè)分片單獨(dú)發(fā)送一個(gè)上傳請(qǐng)求攜帶fileMd5、chunkIndex、chunkCount等參數(shù)后端接收分片并暫存到臨時(shí)目錄當(dāng)所有分片上傳完成后前端發(fā)起合并請(qǐng)求后端按分片序號(hào)將二進(jìn)制內(nèi)容合并成完整文件并計(jì)算整體文件的MD5如果合并之前發(fā)現(xiàn)同一MD5的文件已經(jīng)存在就直接返回已存在的路徑完成“秒傳”。上面提到的MD5我做一下解釋它是一個(gè)類似“文件指紋”的唯一字符串內(nèi)容不同指紋就不同用來判斷兩個(gè)文件是否完全一樣。這不是高深技術(shù)但做好交互體驗(yàn)的細(xì)節(jié)能做到很流暢比如記住上次傳到了哪個(gè)分片、失敗自動(dòng)重試。這個(gè)模塊在論文里可以重點(diǎn)寫因?yàn)樗峭ㄓ玫墓こ棠芰Χ皇呛唵握{(diào)用后才有的功能。這里有一個(gè)關(guān)鍵點(diǎn)合并文件時(shí)建議用RandomAccessFile的seek方法按分片序號(hào)寫入正確位置不要循環(huán)讀然后寫到一個(gè)輸出流里否則分片亂序覆蓋會(huì)導(dǎo)致整個(gè)文件損壞。另外合并完一定要校驗(yàn)總文件大小和分片數(shù)是否吻合并刪除臨時(shí)分片不然臨時(shí)目錄就變成垃圾堆了。4.2 遙感影像元數(shù)據(jù)解析用GDAL還是自己寫解析器影像上傳后如果讓用戶手動(dòng)填寫傳感器類型、坐標(biāo)系、覆蓋范圍這些信息不僅體驗(yàn)差還容易出錯(cuò)。正確的做法是從影像文件本身讀取元數(shù)據(jù)。常用的方案是GDALGeospatial Data Abstraction Library它能解析絕大多數(shù)柵格格式也支持處理地理空間數(shù)據(jù)。主要做法是在Java中通過JNI調(diào)用GDAL需要引入gdal.jar和本地動(dòng)態(tài)庫或者用tifffile之類的庫做輕量級(jí)解析。但GDAL的本地依賴在Windows和Linux下的配置都比較麻煩——你要下載對(duì)應(yīng)版本的庫文件配好環(huán)境變量一不留神就版本沖突。我建議分兩步走第一步對(duì)于GeoTIFF文件用Java自帶的ImageIO讀取文件頭可以拿到寬、高、波段數(shù)、位深等基礎(chǔ)信息第二步如果需要讀取坐標(biāo)系、仿射變換參數(shù)等更專業(yè)的元數(shù)據(jù)再接入GDAL的解析命令。比如用gdalinfo命令行輸出XML格式的元數(shù)據(jù)然后Java程序解析XML這樣能繞開直接的本地庫調(diào)用配置更省心。在元數(shù)據(jù)解析這塊我踩過的最經(jīng)典的一個(gè)坑是GeoTIFF的坐標(biāo)系信息里有一個(gè)GeoKeyDirectoryTag很多文件在寫這個(gè)Tag時(shí)格式并不完全符合規(guī)范導(dǎo)致部分庫解析直接報(bào)錯(cuò)或返回空值。所以解析代碼一定要做空值兜底解析不到就提示用戶手動(dòng)補(bǔ)充。千萬不要讓一個(gè)元數(shù)據(jù)解析失敗阻斷整個(gè)上傳流程。4.3 在線預(yù)覽與瓦片化處理在線預(yù)覽是體現(xiàn)系統(tǒng)“共享”價(jià)值的重要一環(huán)。你把一張遙感影像上傳上去用戶在列表頁點(diǎn)一下如果前端直接彈出一個(gè)下載鏈接那體驗(yàn)完全不合格——人家要的是“像Google Earth一樣能拖動(dòng)、縮放、看細(xì)節(jié)”的影像瀏覽體驗(yàn)。實(shí)現(xiàn)思路是瓦片化將原始大影像按規(guī)則切成若干小圖塊比如256x256像素按縮放級(jí)別建立目錄層級(jí)0/0/0.png表示第0級(jí)第0行0列1/0/1.png表示第1級(jí)第0行1列前端用Leaflet加載瓦片URL模板就可以實(shí)現(xiàn)平滑縮放與平移。畢業(yè)設(shè)計(jì)階段如果影像數(shù)量可控可以做一個(gè)簡化的方案在上傳時(shí)用GDAL生成一個(gè)金字塔縮略圖大圖導(dǎo)出為若干級(jí)分辨率縮略圖前端根據(jù)縮放級(jí)別展示對(duì)應(yīng)的縮略圖更多級(jí)的交互用Leaflet插件離線支撐。我先說明一下“瓦片”這個(gè)概念就是把一整張大地圖切成小方塊網(wǎng)格每一級(jí)縮放進(jìn)一副更粗略的圖瀏覽器只需要加載視野內(nèi)的小方塊就行了而不必一次加載整幅巨圖這也是在線地圖能流暢瀏覽的原因。還需要注意瓦片化處理是CPU密集型任務(wù)大批量上傳時(shí)會(huì)產(chǎn)生較高的后臺(tái)壓力。我給個(gè)建議用生產(chǎn)-消費(fèi)模式處理瓦片化任務(wù)上傳接口把影像ID放進(jìn)Redis隊(duì)列或數(shù)據(jù)庫任務(wù)表后臺(tái)固定線程池去消費(fèi)并異步生成瓦片避免上傳請(qǐng)求被長時(shí)間占用。4.4 權(quán)限控制共享系統(tǒng)的生命線“共享”兩個(gè)字意味著數(shù)據(jù)要在一定范圍內(nèi)流動(dòng)但如果誰都能下載全部影像那就不叫共享叫裸奔。我建議權(quán)限模型至少分三層第一層是角色管理員可以審核、下架、管理所有影像普通用戶可以上傳、管理自己的影像游客只能瀏覽公開影像。第二層是數(shù)據(jù)權(quán)屬每張影像都有一個(gè)歸屬用戶只有上傳者和管理員能編輯、刪除。通過upload_user_id關(guān)聯(lián)在Service層做歸屬校驗(yàn)。第三層是共享策略公開——所有人可見可下載私密——僅上傳者可見指定共享——被加入共享記錄的用戶可以預(yù)覽或下載。這里的控制可以在查詢列表時(shí)動(dòng)態(tài)拼接SQL也可以用Spring Security的PreAuthorize注解做方法級(jí)控制。我實(shí)際項(xiàng)目里的做法是寫一個(gè)ImageAccessService它對(duì)外提供checkViewPermission()和checkDownloadPermission()兩個(gè)核心方法。所有涉及影像詳情的接口入口處必須調(diào)用校驗(yàn)邏輯然后用統(tǒng)一異常處理器捕獲AccessDeniedException返回403。千萬不要把權(quán)限判斷分散寫在各個(gè)Controller里否則遺漏一個(gè)入口就是安全漏洞。5. 實(shí)操過程與核心環(huán)節(jié)實(shí)現(xiàn)5.1 創(chuàng)建SpringBoot工程并集成基礎(chǔ)依賴我用一個(gè)標(biāo)準(zhǔn)步驟來說明怎么起步。這一步不難但依賴版本之間容易出兼容問題。第一步在pom.xml里引入核心starter。我建議這樣規(guī)劃!-- Web 支持 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- 持久層 -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.3/version /dependency !-- 數(shù)據(jù)庫 -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.33/version /dependency !-- JWT 認(rèn)證 -- dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-api/artifactId version0.11.5/version /dependency第二步在application.yml里配置數(shù)據(jù)源、MyBatis-Plus、Redis連接、文件存儲(chǔ)路徑server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/remote_sensing?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver servlet: multipart: max-file-size: 20MB max-request-size: 500MB redis: host: localhost port: 6379 mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl storage: local: root-path: D:/rs-data/ type: local第三步編寫一個(gè)簡單的RestController測(cè)試接口確認(rèn)工程能正常啟動(dòng)并連接數(shù)據(jù)庫。這一步不要跳過我就見過不少人上來就寫一堆業(yè)務(wù)代碼結(jié)果最終連啟動(dòng)都報(bào)錯(cuò)排查了一周發(fā)現(xiàn)是依賴版本沖突。5.2 實(shí)現(xiàn)分片上傳的后端接收邏輯分片上傳的后端核心代碼看起來不復(fù)雜但有幾個(gè)邊界條件必須處理好。RestController RequestMapping(/api/upload) public class ChunkUploadController { private final StorageService storageService; private final ImageInfoService imageInfoService; PostMapping(/chunk) public Result uploadChunk(RequestParam(file) MultipartFile file, RequestParam(fileMd5) String fileMd5, RequestParam(chunkIndex) Integer chunkIndex, RequestParam(chunkCount) Integer chunkCount) { // 1. 保存分片到臨時(shí)目錄 String tempDir storageService.getTempPath(fileMd5); File chunkFile new File(tempDir, String.valueOf(chunkIndex)); file.transferTo(chunkFile); // 2. 如果這是最后一個(gè)分片觸發(fā)合并 if (chunkIndex.equals(chunkCount - 1)) { boolean complete storageService.mergeChunks(fileMd5, chunkCount); if (complete) { // 3. 合并完成后解析元數(shù)據(jù)、生成縮略圖、創(chuàng)建影像記錄 File mergedFile storageService.getMergedFile(fileMd5); ImageMeta meta ImageMetadataParser.parse(mergedFile); ImageInfo imageInfo ImageInfoAssembler.from(meta, mergedFile); imageInfoService.save(imageInfo); return Result.success(上傳完成, imageInfo.getId()); } } return Result.success(分片已接收); } PostMapping(/check) public Result checkUpload(RequestParam(fileMd5) String fileMd5, RequestParam(fileSize) Long fileSize) { // 秒傳校驗(yàn)如果存在相同MD5且文件大小一致則直接返回已有影像ID ImageInfo existing imageInfoService.lambdaQuery() .eq(ImageInfo::getFileMd5, fileMd5) .eq(ImageInfo::getFileSize, fileSize) .one(); if (existing ! null) { return Result.success(秒傳成功, existing.getId()); } return Result.success(需要上傳); } }這里的合并邏輯我再補(bǔ)充一個(gè)底層細(xì)節(jié)為了保證大文件的分片合并不會(huì)內(nèi)存溢出合并時(shí)應(yīng)使用通道Channel或者緩沖流分批寫入而不是Files.readAllBytes()一把梭把幾百M(fèi)B一次性加載進(jìn)內(nèi)存。5.3 影像列表與空間范圍檢索的前后端聯(lián)調(diào)列表頁是用戶接觸最多的頁面交互體驗(yàn)直接影響答辯效果。后端接口的設(shè)計(jì)邏輯是GetMapping(/images) public Result pageList(RequestParam(defaultValue 1) Integer page, RequestParam(defaultValue 12) Integer size, RequestParam(required false) String sensorType, RequestParam(required false) String startDate, RequestParam(required false) String endDate, RequestParam(required false) Double minLon, RequestParam(required false) Double minLat, RequestParam(required false) Double maxLon, RequestParam(required false) Double maxLat) { LambdaQueryWrapperImageInfo wrapper new LambdaQueryWrapper(); // 屬性條件 wrapper.eq(StringUtils.hasText(sensorType), ImageInfo::getSensorType, sensorType); wrapper.between(StringUtils.hasText(startDate), ImageInfo::getCaptureDate, startDate, endDate); // 空間范圍條件 if (minLon ! null maxLon ! null) { wrapper.apply(coord_min_lon {0} AND coord_max_lon {1}, maxLon, minLon) .apply(coord_min_lat {0} AND coord_max_lat {1}, maxLat, minLat); } // 權(quán)限過濾只能看到公開的或自己上傳的或被共享的 wrapper.and(w - w.eq(ImageInfo::getStatus, published) .or().eq(ImageInfo::getUploadUserId, currentUserId()) .or().inSql(ImageInfo::getId, getSharedImageIdsSql(currentUserId()))); // 分頁 PageImageInfo pageResult imageInfoService.page(new Page(page, size), wrapper); return Result.success(pageResult); }前端Leaflet部分的關(guān)鍵代碼我貼一個(gè)示意const map L.map(map).setView([35.0, 105.0], 5) L.tileLayer(https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png).addTo(map) // 矩形框選擇 let bounds null L.rectangle(bounds, { color: #ff7800, weight: 1 }).addTo(map) map.on(boxzoomend, (e) { const b e.boxZoomBounds const query { minLon: b.getWest(), maxLon: b.getEast(), minLat: b.getSouth(), maxLat: b.getNorth() } loadImages(query) })需要注意空間范圍檢索一定要使用索引并且把經(jīng)度緯度的比較條件合拼在同一個(gè)apply的SQL片段里避免MyBatis-Plus生成多個(gè)OR條件導(dǎo)致索引失效。5.4 縮略圖生成與瓦片簡易處理的代碼示例生成縮略圖這一步我用的是ImageIO加Graphics2D縮放的方式先說明這個(gè)是相對(duì)簡化的方案如果你做的是GeoTIFF大圖建議結(jié)合GDAL命令完成。我做一種輕量實(shí)現(xiàn)的示范public String generateThumbnail(File source, String outputDir, int targetWidth) throws IOException { BufferedImage image ImageIO.read(source); // 計(jì)算等比縮放高度 int targetHeight (int) Math.round(image.getHeight() * (targetWidth * 1.0 / image.getWidth())); BufferedImage thumbnail new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB); Graphics2D g2d thumbnail.createGraphics(); g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g2d.drawImage(image, 0, 0, targetWidth, targetHeight, null); g2d.dispose(); String thumbPath outputDir File.separator thumb_ System.currentTimeMillis() .jpg; ImageIO.write(thumbnail, jpg, new File(thumbPath)); return thumbPath; }這段代碼運(yùn)行在小文件場(chǎng)景下沒問題但我要說實(shí)話如果影像尺寸特別大ImageIO.read()會(huì)把整幅圖讀進(jìn)內(nèi)存極容易觸發(fā)OutOfMemoryError。正規(guī)做法是用ImageIO的ImageReader按需解碼縮略圖設(shè)置ImageReadParam的setSourceRegion或者直接調(diào)用GDAL生成金字塔。這是很多畢設(shè)項(xiàng)目的隱藏雷區(qū)如果你提前規(guī)避掉答辯時(shí)能講出這套原理面試官和老師都會(huì)高看你一眼。6. 常見問題與排查技巧實(shí)錄6.1 啟動(dòng)報(bào)錯(cuò)與依賴沖突速查表我整理了開發(fā)過程中最高頻的五類啟動(dòng)期問題直接對(duì)照排查報(bào)錯(cuò)現(xiàn)象常見原因解決思路Failed to configure a DataSource未配置數(shù)據(jù)源或YAML縮進(jìn)錯(cuò)誤檢查application.yml的spring.datasource配置及MySQL服務(wù)是否啟動(dòng)Consider defining a bean of type XXXMapperMapper接口沒加Mapper注解啟動(dòng)類加MapperScan或在每個(gè)Mapper接口上標(biāo)注端口被占用8080被其他服務(wù)占用netstat -ano定位進(jìn)程并關(guān)閉或修改端口MyBatis-Plus分頁失效缺少分頁插件配置配置MybatisPlusInterceptor并注冊(cè)PaginationInnerInterceptor文件上傳提示超過大小限制spring.servlet.multipart.max-file-size不匹配修改配置遠(yuǎn)程影像大文件多走分片接口6.2 上傳成功但列表不顯示問題出在哪里這是一個(gè)很經(jīng)典的綜合問題場(chǎng)景文件本身傳到服務(wù)器了臨時(shí)目錄里的分片也合并成了完整文件但列表頁就是查不到新數(shù)據(jù)。我經(jīng)歷過一次最后排查出兩個(gè)問題第一個(gè)是元數(shù)據(jù)解析失敗導(dǎo)致事務(wù)回滾。影像文件雖然上傳到了磁盤但由于格式比較特殊ImageMetadataParser拋出了NullPointerException導(dǎo)致事務(wù)回滾數(shù)據(jù)庫里沒有生成image_info記錄而磁盤上的文件卻“殘留”了。解決方式是在元數(shù)據(jù)解析失敗后捕獲異常仍然保存一條狀態(tài)為“元數(shù)據(jù)待補(bǔ)充”的數(shù)據(jù)同時(shí)清理異常文件。第二個(gè)是查詢條件限制了可見范圍。列表接口有權(quán)限過濾默認(rèn)只能看到已發(fā)布的公開影像。新上傳的影像狀態(tài)是“待審核”上傳者自己理論上能看到但如果你用了管理員賬號(hào)去測(cè)試而管理員沒有歸屬該影像就必然看不到。所以要區(qū)分兩個(gè)場(chǎng)景管理端看全部數(shù)據(jù)普通用戶端看可見數(shù)據(jù)。6.3 在線預(yù)覽失敗瓦片加載不出來怎么排查這個(gè)問題的排查路徑很固定先從后端日志看瓦片請(qǐng)求有沒有到達(dá)接口。沒到——檢查前端請(qǐng)求URL拼接是否正確尤其是{z}/{x}/{y}的層級(jí)順序。到了——檢查后端返回的瓦片文件是否存在。若確認(rèn)文件存在但前端渲染模糊或花屏多半是瓦片坐標(biāo)系不統(tǒng)一前后端對(duì)影像范圍的經(jīng)緯度計(jì)算方式不一致。我給一個(gè)實(shí)操心得瓦片調(diào)試階段先用瀏覽器的開發(fā)者工具直接訪問瓦片地址看返回的Content-Type是否為image/png或image/jpeg。如果返回了JSON錯(cuò)誤說明URL路由或者權(quán)限校驗(yàn)有問題優(yōu)先排查這兩處。這樣才能快速定位是鏈路問題還是渲染問題。6.4 數(shù)據(jù)庫表導(dǎo)入亂碼與時(shí)空坐標(biāo)數(shù)據(jù)異常MySQL連接字符串一定要帶characterEncodingutf8否則在Windows下導(dǎo)入中文字段會(huì)出現(xiàn)亂碼。還有一個(gè)容易忽略的是serverTimezone不配置的話在8.x版本啟動(dòng)階段會(huì)拋出時(shí)區(qū)異常。對(duì)于坐標(biāo)數(shù)據(jù)異常我遇到過經(jīng)緯度解析出NaN的情況原因根子在于GeoTIFF里GeoTags的仿射變換參數(shù)讀取失敗。解決辦法就是做校驗(yàn)入庫前判斷四個(gè)坐標(biāo)值是否是有限數(shù)值并且經(jīng)度范圍是否在[-180,180]之間、緯度是否在[-90,90]之間。如果有異常就把該影像標(biāo)記為“待修復(fù)”而不是直接拒絕整個(gè)文件。7. 項(xiàng)目打磨建議與答辯亮點(diǎn)7.1 三個(gè)低成本高回報(bào)的加分功能如果核心功能都做完了還有余力我建議優(yōu)先考慮下面三個(gè)功能。它們每個(gè)工作量都不大但對(duì)系統(tǒng)觀感的提升非常明顯第一個(gè)是操作日志與數(shù)據(jù)統(tǒng)計(jì)后臺(tái)。管理員能看到每日上傳量、下載量、活躍用戶數(shù)前端用ECharts畫幾張趨勢(shì)圖。這不難但能讓老師直觀感受到系統(tǒng)的“管理閉環(huán)”已經(jīng)建起來了。第二個(gè)是影像對(duì)比模式。在預(yù)覽模塊中支持同時(shí)加載兩期影像比如同區(qū)域不同月份的數(shù)據(jù)通過透明度滑桿進(jìn)行對(duì)比。Leaflet里有現(xiàn)成的插件可以做圖層透明度控制實(shí)現(xiàn)難度不高但能直接呼應(yīng)“遙感影像”的業(yè)務(wù)特色效果比千篇一律的CRUD列表頁亮眼得多。第三個(gè)是數(shù)據(jù)批量導(dǎo)入。支持用戶上傳一個(gè)ZIP壓縮包后端解壓后逐張解析并導(dǎo)入影像元數(shù)據(jù)。很多真實(shí)場(chǎng)景下遙感生產(chǎn)部門都是批量出數(shù)據(jù)的這個(gè)功能會(huì)讓系統(tǒng)顯得更有工程意識(shí)。7.2 答辯時(shí)技術(shù)亮點(diǎn)怎么講不心虛答辯官最反感的就是“代碼全是復(fù)制粘貼”的痕跡。但反過來如果你能把系統(tǒng)里的幾個(gè)設(shè)計(jì)決策講出前因后果即使代碼本身沒那么完美也完全能通過。我給你列三個(gè)角度角度一存儲(chǔ)抽象層為什么要做。你可以說“文件存儲(chǔ)我抽取了一個(gè)StorageService接口本地實(shí)現(xiàn)和對(duì)象存儲(chǔ)實(shí)現(xiàn)可以自由切換。當(dāng)前畢設(shè)環(huán)境用的是本地磁盤如果部署到云環(huán)境只需要增加一個(gè)實(shí)現(xiàn)類不需要改任何業(yè)務(wù)代碼?!边@是實(shí)際做過的設(shè)計(jì)不是編的。角度二分片上傳為什么選擇10MB作為分片大小。你可以說“分片太小會(huì)產(chǎn)生太多HTTP請(qǐng)求增大網(wǎng)絡(luò)開銷分片太大在網(wǎng)速不穩(wěn)時(shí)容易超時(shí)重傳。實(shí)測(cè)下來10MB在校園網(wǎng)帶寬下是一個(gè)平衡點(diǎn)。”角度三權(quán)限校驗(yàn)為什么放在Service層而不是Controller層。你可以說“Controller是HTTP入口但Service層是業(yè)務(wù)復(fù)用邊界。如果只做Controller校驗(yàn)內(nèi)部調(diào)用、定時(shí)任務(wù)這些非HTTP入口就會(huì)繞過權(quán)限造成數(shù)據(jù)越權(quán)?!?.3 從畢設(shè)到真實(shí)項(xiàng)目的演進(jìn)路徑做完這個(gè)系統(tǒng)如果還想往深走我按實(shí)際工作中的演進(jìn)路徑給你指?jìng)€(gè)方向。畢設(shè)階段用MySQL存元數(shù)據(jù)、本地存文件是夠的但真實(shí)遙感共享平臺(tái)遲早要面對(duì)海量文件和在線計(jì)算的需求。第一步是引入對(duì)象存儲(chǔ)。把分散的本地文件統(tǒng)一收編到MinIO或云對(duì)象存儲(chǔ)里存儲(chǔ)路徑仍然存在MySQL但接口走SDK訪問用預(yù)簽名URL。好處是文件不用再擔(dān)心磁盤爆掉也方便做CDN加速。第二步是數(shù)據(jù)湖與元數(shù)據(jù)目錄服務(wù)。當(dāng)影像數(shù)量達(dá)到百萬級(jí)MySQL的元數(shù)據(jù)檢索會(huì)變得吃力。這時(shí)可以考慮引入Elasticsearch或?qū)iT的元數(shù)據(jù)目錄方案實(shí)現(xiàn)更靈活的全文檢索、多字段聚合分析甚至按業(yè)務(wù)標(biāo)簽做智能推薦。第三步是矢量柵格一體化。遙感平臺(tái)如果只管理柵格影像是不夠的往往還需要管理矢量邊界比如行政區(qū)劃、地塊信息。這時(shí)候就要考慮引入空間數(shù)據(jù)庫把矢量數(shù)據(jù)與柵格數(shù)據(jù)統(tǒng)一管理起來平臺(tái)才能支持更復(fù)雜的空間分析業(yè)務(wù)。這些路徑并不是讓你現(xiàn)在就去實(shí)現(xiàn)但答辯時(shí)老師一旦問“系統(tǒng)的下一步規(guī)劃”你能說出這套有層次的演進(jìn)方向比空談“性能優(yōu)化”要有說服力得多。8. 寫在最后我的實(shí)操體會(huì)這個(gè)遙感影像共享系統(tǒng)做下來我個(gè)人最大的體會(huì)是畢業(yè)設(shè)計(jì)的難點(diǎn)從來不在于某項(xiàng)技術(shù)多高深而在于能不能用一個(gè)完整的業(yè)務(wù)邏輯把各種技術(shù)串聯(lián)起來。文件上傳、列表檢索、權(quán)限控制、空間預(yù)覽每個(gè)單點(diǎn)技術(shù)你可能都見過但真正把它們“焊接”成一個(gè)能跑通的系統(tǒng)中間會(huì)遇到無數(shù)個(gè)以為很簡單、實(shí)際上卻很消磨耐心的小問題——合并文件時(shí)路徑誰負(fù)責(zé)清理、預(yù)覽瓦片請(qǐng)求被攔截器卡住、云量字段是String還是Double、前端畫框和后端判斷相交用的坐標(biāo)系是不是同一個(gè)。我給正在做或準(zhǔn)備做這個(gè)題目的同學(xué)一個(gè)非常具體的建議前期設(shè)計(jì)階段拿一張紙從管理員、普通用戶、游客三種角色視角把系統(tǒng)的核心操作流程完整走一遍所有涉及狀態(tài)的流轉(zhuǎn)都寫下來再動(dòng)手寫代碼。這個(gè)動(dòng)作花不了半天但能幫你省出后面兩周的返工時(shí)間。最后再分享一個(gè)小技巧論文“測(cè)試結(jié)果”章節(jié)不要只寫“運(yùn)行成功、頁面正?!币欢ㄒ獪?zhǔn)備幾個(gè)有說服力的數(shù)據(jù)。比如上傳一張真實(shí)的多光譜遙感影像記錄上傳耗時(shí)、元數(shù)據(jù)解析出來的波段數(shù)和坐標(biāo)范圍在列表中用傳感器類型加拍攝日期做組合查詢截圖展示查詢條件和結(jié)果數(shù)量。這些實(shí)證數(shù)據(jù)會(huì)讓你的論文厚度立刻提升一個(gè)檔次。希望這個(gè)選題能成為你技術(shù)成長路上扎實(shí)的一步。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩青久久| 国产精品久久久久久高清无码免费看| 97国产高清视频在线观看| 日韩电影免费网站麻豆视频| 欧美日不卡| wwwxxx日本爽| 国产一区二区在线播放| 国产精品色哟哟| 国产欧美一区激情交| 久久国产精品m码| 超碰在线人妻不卡| 女优视频第10页| 欧美经典一区二区三区| 丝袜人妻av一区二区| 欧美色图人妻| 熟女网站最新| 大乔未久88一区| 日日操天天操| 99操逼| 无码久久亚洲高清,| 国产成人91一区二区三区| 91在线免费观看处女| 中文字幕交换人妻| 国产无码精品成人| 影音先锋少妇| 欧美精品23| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 欧美性爱1080p| 中文字幕熟女人妻丝袜| 国产97亚洲| 亚洲高清欧美总合| 人妻少妇精品视频一区二区三区| 男人久久天堂| J?P?NESEHD熟女熟妇伦| 尤物黄色在线观看网站| 国产精品999zyz| 久久久性爱视频| 夜夜操老骚逼视频网站| 亚洲吊色| AV女优男人的天堂| 亚洲欧美日韩制服另类| 久久精品国产亚洲AV高级北京| 韩三级a视频在线观看| 亚洲精品一区二区精品| 国产h片在线观看视频| 亚洲欧美在线观看2021| 国产久久一区二区午夜| 91久久18禁| 中文日韩欧美熟| 极品少妇久久久| 亚洲精品国产精品成人| 久操不卡视频| 色五月婷婷五月天| 欧洲精品久久| 素人美腿视频网站| 中国黑人三级片网站上区| 久久人妻四季| 白丝1区2区3区| 九九九九亚洲| 大肉棒导航| 大香蕉伊人色偷偷在线| 日韩三A大片在线观看| 午夜操操操| 久久111| 99精品在线观看| 国产精品嫩草影院午夜两性| 欧洲精品一区二区三区| 亚洲丁香花色| 欧美在线官网| 狠狠干精品一二三四五六2022| 国产福利精品最新在线| 久久性爱精品一区| 欧美视频一| 中文字幕日韩国产传媒欧美精品| 一区二区三区精品黑丝白丝酒店对鸡| 中文字幕精品一区二区精品| 中文字幕高清20页视频| 中文乱码99| 伊人991| 亚洲欧美精品久| 亚洲欧美日韩国产丝袜自拍中文| 国产又大又粗又长视频在线| 美国久久一二三四| 日韩欧美亚欧在线视频| 亚洲国产中文字幕| 四虎884a| 啊啊啊好湿久久| 岛国艾薇凹凸视频天堂| 国产v片在线免费观看| 少妇丝袜在线观看AV| 刺激性视频黄页| 99久久久久| 亚洲无码一二三区| 亚洲国产av中文字幕久久| 国产97视频| 丝袜美腿操av| 中文熟女五十乱码在线| 欧美韩国你懂得在线| 啊啊啊操一区| 国产乱码久久| 久妇网| 中文字幕在线观看视频www| 狠狠操官网| 久久欲| 中出欧美| 日本中文熟女视频| 欧 美 自 拍 偷 拍| 亚洲综合第一页| TS人妖另类精品视频系列| 一区二区三区免费岛国片| 中文字幕成人| 九七毛片九九毛片 | 国产久久一区二区| 人妻大相焦在线| 黄网站黄视频网站进入口| 久久综合日韩亚洲欧美| 91欧美偷拍| 日本孕妇孕交| 乱伦Av网| 97超碰免费人人性爱| 免费黄色A片| 凹凸精品熟女在线观看| 国产精品久久泡妞网站| 中文字幕第二页| 大香蕉92| 久久后入制服| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 91校园春色长篇| 玖玖爱伊人玖玖爱| 国产丝袜高跟美女av免费观看| 天天综合91在线| 97超级色碰碰| 久操网线| 啊啊啊在线看| 日本熟妇人妻中出视频| 亚洲资源网| 少妇一区二区三区高速| 91新在线欧美| 可以看的av| 91一区二匹| 一区二区三区欧美激情| 在线天堂资源亚洲| 国产版a级片直播在线| 九九九九精品视频| 日本东京热大香蕉a片| 美女自卫慰黄网站免费| 人人妻人人爱人人玩| 欧美 日韩 婷婷 五月| 强奸乱伦αv片| 欧美激情 一区| 天天影视网综合少妇| 亚洲欧美在线综合| 在线观看AV片| 丁香五月天啪啪| 亚洲国产美女久久久久| 天堂综合| 九九视频黄色片| 国产性爱强奸乱伦大全| 神马午夜久久久| 精品日韩中文在线| 日夜尻逼网| 9久久精品| 中文字幕一区二区三区人妻不卡| 亚洲最大的黄色电影网站。| 午夜福利视频在线一区| 久久久久白虎| 狠狠躁天天躁日日躁97| 中国小夫妻勾搭露脸淫荡对白| 亚洲色图日韩精品| 欧美丰满少妇xx高潮| 青青草综合在线| 九九九九日本| 无码二级三级| 欧洲亚洲人人爽爽视频| 欧美色图亚洲特色| 久久人妻精品| 日本欧美国内在线| 色黄色美女大长腿午夜视频| 视频不卡中文字幕| 强乱老妇中文字幕| 日本天天干天天日一区| 69视频福利导航| 天天射影院| 黄片com.| 大香蕉免费3| 久久少妇| 偷拍盗拍亚洲色图图片| KK色在线影院| 亚洲91射| 免费97视频| 久久秀这里有精品| www.色婷婷.com| 男人的天堂一区三区| 一区二区三区美女超清| 国产精品白丝在线播放| 偷拍亚洲熟女视频播放| 欧洲黄色网| 91在线观看,天天综合| 校园春色家庭伦理欧美激情| 亚洲永久永久永久永久一级一级一级精品| 东北女人av| 天天干天天做| 国产免费一区二区三区最新不卡| 88在线一区二区三区| 99精品网站| 丰满少妇一区二区三区四区观看| 亚洲s在线观看| 狠狠久久亚洲欧美专区| 啊啊啊不要好疼视频| 日韩av乱伦| 99精品久久久久久久婷婷蜜桃| 欧亚在线视频| 九九色逼| 九九精品美女高溯喷水| 爽爽爽免费视频| 国产精品制服丝袜中文字幕日韩一区二区三区 | 久久精品区| 免费精品无码一级毛片牛牛影视 | 99日精品欧美国产| 性色av网站| 婷婷五月天激情网| 久久精品性| 五月婷在线| 亚洲日产专区| 校园春色欧美色图| 亚洲综合骚逼| 亚洲性高潮| 香蕉精品二区二区| 手机在线视频国内精品| 黄色高清无码无码破解免费暗网| 欧美色三级片91| 欧美综合色站| 美国日韩黄片| A片 AV一级在线播放观看免费| 九九无码视频| 精品福利视频| 欧美九一精品久久久熟妇| 国产AV人人夜夜澡人人爽麻豆| avav青青草久久夜| 精品国产三级av韩国在线| 亚洲AV成人无码一二三久久| 久久亚洲精品成人av| 伊人婷婷五月天| ss久久| 亚洲综合小视频小说在线观看| 欧美在线视频播放| 992视频一区| 女人天堂av在线播放| 边做饭边操逼逼| 亚洲天堂7777| 粉嫩AV输入| 91网站18+| 激情欧美97| αⅴ天堂| 欧美亚综合色图| 色777999综合| 午夜福利1区2区3区| 日日操丁香五月天| 第二页中文字幕| 欧美高清在线| 欧美日韩国产另类综合| 久久久爆乳翘臀一线天伦理视频| 欧美日韩婷婷中文| 国产精品人妻免费精品| 性爱av在线免费观看| 国产欧美另类久久久精品课程| 日韩熟女操逼| 亚洲色人妻综合| 久久人妻无码毛片A片麻豆| 国产熟女无套内射| 国内精品伊人久久久久影院会| 熟妇人妻一区二区| 蜜臀久久99精品久久久久久-DVD原版全| 91东京热男人的天堂| 日本大片日本一区二区免费高清| 人乳av| 日逼逼免费看| 2025亚洲男人天堂| 国产深夜福利| 99精品在线观看| 久久精品99久久久久久| 欧美日韩日产免费网站看| 91亚洲黑人| 97鸡把在线视频| 大香蕉免费乱伦视频| 免费网色网站| 亚洲春色欧美激情自拍| 精久久久91| 欧美精品69性爱| 天天影视网综合少妇| 欧美亚洲中文字幕| 天天天天天干夜夜夜夜夜操| julia ann久久| 日韩性爱免费视频在线网站| 日日夜夜模| 翔田千里AⅤHD无码| 国产欧美伊人| 亚洲高清无毛一区二区| 视频国产成人精品日本亚洲18| 97干在线视频| 国内外内射高清视频| 五月婷婷六月天| 国产97色在线| 超碰激情808| 无码久久国产| 加勒比日本在线| 国产家庭乱伦表演| 激情婷婷丁香网| 狠狠色综合网| 999综合网| 青娱乐亚洲热| AV在线性爱| 色阁阁AV综合网| 日韩激情中文字幕有码| 97精品视频在线播放| 久久精品色欧美aⅴ一区二区| 大香蕉伊然在亚洲91| 在线国产一区二区av| 51一区二区三区| 99只有精品| 国产成人在线观看网址| 日日夜夜青青草母狗| 园内精品自拍视频在线播放| 日韩精品午夜操呦呦不卡影院| 激情99| 中日亚韩免费视频| 久肏视频字幕| 情色av电影| 日韩Va亚洲va欧美Ⅴa久久| 大但人体久久久久| 欧美日韩性感| 国内毛片婷婷六月色| 骚货操死你| 久久久999网站| 亚洲视频小说| 强奸xx国产| 亚洲不卡三级手机播放| 蜜臀无码一区二区| 91人妻视频在线| 亚洲色 国产 欧美 日韩| 98超碰欧美| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 91天天综合网| 欧美啪啪啪91| 做爱福利视频一区二区| 欧美国产日韩清纯唯美| 亚乱色| 99999精品| 91精品免费| 精品大久久| 日本 欧美 国产一区| 欧美精品成人一区二区在线观看| 色99久草| 精品二999| 精品国产自在在线99| 男人的天堂一区三区| 国产精品分类在线观看| 亚洲人久久久久日| 97操综合| 91精品国产乱码| 97这里只精品| 诱惑人妻欧美一区在线播放| 丰满欧美少妇| 色av中文字| 日本高清久久| 99热66| 国产极品一区二区三区三州| 国产真实野战在线视频| 丁香婷婷激情五月天无毒不卡| www久久久| 久久无码电影| 欧美视频一区二区在线| 91影库| 日韩国产精品人妻无码久久久| 天天综合~91| AV男人天堂网| 蜜臀va69| 午夜福利 成人 91| #NAME?| 大香蕉99re| 经典丝袜一区| 亚洲骚男同com| 中日韩久久久免费看| 久久久精| 色与欲影视天天看综合网| 色眯眯av| 99热精品在线观看| 婷婷激情四射| 久久久97| 97资源视频| 无码直播久久久| 国产精品探花色| 岛国片在线视频网站| 久久 国产 无码| 高清无码久操视频| 国产成人一级av88| 激情综合二| 国产高潮AA片免费看| 午夜男人一级A片7777| 超碰91在线| 亚洲综合五月天| 丰满人妻一区二区三区在线| 麻豆天美传媒在线视频天堂| 亚洲男人天堂2013| 中文字幕欧美精品亚洲日韩蜜臀| 欧美 亚洲 偷拍自拍| 婷婷五月天激情网| 毛片视频白嫩| 欧美亚洲国产日本在线,久久精品国产| 操淫穴亚洲五月丁香| 熟女露脸激情自拍视频| 丝袜 中出 制服 人妻 美腿 中文字幕| 94色色电影网| 亚洲图片激情综合另类| av中文在线| 综合久欧洲| 性交一区二区在线播放| 久久黄人人爽视频| 天堂俺去俺来也www久久婷婷| 欧美日韩香蕉| 情色日播放AV| 加勒比伊人影院| 日本二三四区| 国产91啪| 欧美久久草熟女| 亚洲人码13| 超碰美女97| 免费一级精品啪啪视频| 欧美日韩夜夜| 素人伊尹大香蕉免费下载视频| 亚州综合色| 欧美性爱三区二区| 色狠狠综合噜一二三区| 青青草原伊人网| 国产精品福利资源在线尤物| 久久久久久AV无码免费网站| 91嫩草欧美| 国语精品对白| 牛牛aV| 91亚州欧美| 熟女少妇视频| 国产精品无码AV网站| 日本三级人妻a人妻一在线| 不卡免费av在线播放| 九九热免费在线国产视频伊人五月| 蜜臀无码一区二区| 日韩无码操逼片| 殴美牲| 欧美第五页| 蜜乳Av成人片网站| 日本黄色裸日本黄色裸体 | 欧美嗯啊……在线观看视频免费| 中文字幕免费看| 少妇厨房愉情理伦片bd在线观看| 麻豆人妻精品一区二区| 欧美综合色图网| 国产精品无码av在线| 91jk色拍| 一级做受视频免费是看美女| 欧美嗯啊……在线观看视频免费| 婷婷国产精品一区二区| 韩国黄色片精品久久久 | 免费作爱一级视频| 九九av| 精品无码不卡视频| 超碰这里只有精品| 国产日韩色综合| 操人妻逼91| 日韩av电影成人在线| 久久欧美按摩999| 三级色影综合网| 国产日比| 高清孕妇孕交 交| 99精品无码| 密臀在线一区尤物| 神马福利久草| 国产家庭乱伦表演| 亚州综合图片| 免费观看啪视频| 色色97爱| 7月婷婷综合| 操我啊啊啊啊啊| 国产精品爆乳懂色蜜乳| 自拍欧美| 天天天天天天天天天天干美女| 中文字幕一区二区三四五区日日骚| 中文字幕一区二区三区高清| 超碰这里有精品| 久久精品美女一区| 99中文字幕| 日本天天吊| 国产精品久久久久久久AV大片| 国产精品久久久777| 91精品久久久久五月天精品| 在线情色电影 91大| 一级性爱aaaa| 亚洲精品久久久久久久蜜桃臀| 91色碰| 国产中文字幕在线点播| 久久久久深夜无码| 欧美熟妇视频| 岛国毛片在线观看免费| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 无码精品久久久久久亚洲| 中美日韩毛片| 影音先锋乱| 亚洲欧美人妻| 天海翼久久| 欧美精品第3页| 伊人网免费视频| 天天干夜夜| 欧美性猛交美女自慰91| 亚洲成人av电影在线| 亚洲第一页色网| 国产人伦精品一区二区三区| 爽 好舒服 无码刺激久久| 看全色黄大色大片免费视频| 99黄页网站| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 国产专区第一页| 久久精品店| 亚州欧美总和| 91大神电影天堂| 亚洲天堂99| 欧美激情另类一区二区| 熟妇视频一区二区三区在线| 日韩中文9| 欧美 亚洲 大香| 六月婷婷五月丁香| 狠狠激情综合狠狠操中文字幕| 张柏芝国产一区在线观看| 欧美激情一| 久久欧洲| 2010男人的天堂| 强奸乱伦动态污图免费| 国产AV色黄看到爽| 亚洲一级黄色毛片| 青草精品视频日本久久久久网站在线| 青青草无码视频| 白丝AV网站| 欧美天天插| 超碰av在线| 欧美自拍偷拍免费观看| 日逼视频日本| 无码免费在线观看黄色片| 91美女视频在线观看| 亚洲双插| 欧美三四五区| 久久久无码精品人妻二区 | jizz啪啪| 国产无码精品久久久久久| 久久久偷拍| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲图片偷拍视频区| 91c色| 国产精品嫩草久久久久| 天天插夜夜操| 国产亚洲女v在线观看| 100啪啪视频大全| 日韩啊V| 日韩三级伦理中文字幕| 成人蜜乳小视频网站| 一区二区三区国产在线播放| 日韩亚洲欧美中文字幕| 成·人免费午夜在线观看| 羞涩视频| 精品人妻视频入口| 亚洲一区二区三区播放在线| 久久无码成人| 天天操天天舔| 99热这里| 手机不卡视频不卡在线一二三区 | 久草尤物| 日韩在线性爱免费视频| 人人摸人人叼| 黑丝内射一区二区三区| 九九精品美女高溯喷水| 欧美精品丝袜久久久中文字幕| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 91精品伊人久久久大香线蕉91| 日韩丰满熟妇| 亚洲色五月| 澳门人妻久久| 91美女看B| 亚洲综人网| 亚洲一二三四区| 2017人人操,人人摸| 国产尤物AV尤物在线观看不卡| 国产精品自产拍在线观看社区| 婷婷五月丁香五月| 97这里都是精品| 午夜综合在线| 久久久久久久97| 亚洲人妻在线一区| 大香蕉手机视频| 东京热一区二区三区四区五区六区| 亚州熟妇精品| 伊人麻豆传媒| 日韩Va亚洲va欧美Ⅴa久久| 国内毛片免费h片在线| 亚洲91av| 任我爽在线视频免费观看| 色欲av国内精品久久久久久| 亚洲五码一区二区三区| 精品一区二区啪啪啪| 男人天堂综合| 青青色在线观看| 日韩一级特黄av毛片| 日韩人妻资源网| 黑人与人妻| 欧美亚洲小说| 亚洲av无码成人精品国产| 爱爱动态试试看6 0秒| 伊人9| 日小BB小视频| 超碰人人乐97| 性欧美999| 操逼不卡中文字幕| 91网亚洲| 淫荡网址| 亚洲第一页色| 超碰9 7女人| 中文字幕一二区二三区人妻专区| 亚洲国男人的天堂| 亚洲双插| 日韩性爱小视频在线观看| 欧美老妇女内射网址| 欧美综合网A| 手机看av网站在线看| 亚洲精品蜜桃久久久久久久| 国产一区二区免费福利片| 97色婷婷| 怡红院成人视频| 亚洲熟女中文字幕在线| 色阁阁AV综合网| 久久男人精品| oumeizonghese,www| 91欧美大片| 人人爽天天爽| 久久六六| 九九九久千久久激情蜜桃在线看 | 蜜臀久久久99久久久久| 久久激情网| 午夜九九| av凤凰久久久| 欧美丝袜中文字幕07在线| 国产女性无套 免费观看| 欧洲精品欧洲精品| 婷婷亚洲五月***久久| 免费超碰97久久| 亚一综合久久久久久久久久| 亚洲性猛交| 国模不卡| 一摸二插三插| 五月丁香大香蕉| 色淫网站优优视频| 91亚洲黑人| 激情小说日韩无码| 久久久久久久国产| 久久夜黄色无码A级大片| 极品少妇久久久久| 婷婷丁香在线| A 在线网址| 国产午夜精品在线观看| 国产精品97超碰| 国产精品亚洲四五区在线观看| 91狠婷| 男人的天堂不卡一区二区 | av九九| 狼人久草| 亚洲男人天堂Av| 97色色婷婷| 天天干美少妇一区| 97精彩视频网站| 啊啊啊啊啊操我视频| 在现视频女上位好爽| 99re3这里只有精品| av操操不卡| 97AV在线免费观看| 亚洲欧美97√| 最新av网站在线观看| 夜色AV无码手机在线影院| 日本色色色视频| 97综合在线| 亚洲综合五月天| 超碰人妻久久人妻中文97| 五月婷婷hd| 国产AV人人夜夜澡人人爽麻豆| 97视频播放| 麻花豆传媒剧国产MV出差| 中文字幕在线日亚洲9| 美女淫穴| 超碰97色| 岛国精品视频在线观看| 爽爽爽免费视频| 超碰97国产欧美| 日韩性爱免费观看视频| 被体育老师抱着c到高潮| 97超碰碰碰| 精品一区二区三区蜜桃臀www| 中文字幕av片| 国产人伦a片信息免费片| 深爱五月天| 久久精品六区| 天天日B夜夜干B时时操B| 91 国产丝袜在线放观看 | 中文字幕在线日亚洲9| 成人五月天色网| 欧美亚洲图片| 伊人色综合网| 久久 精品| 920日本午夜免费| 日日AAvv| 综合久| 精品无av| 丰满人妻一区二区三区在线| 97欧美综合| 情色日播放AV| 国产黄色在线播放观看| 欧美三级一级| 26UUU欧美激情一区二区| 蜜桃不卡一区二区| 天天看天天在线精品| 综合网97| 日韩欧美经典在线观看| 天天操熟妇| 久久久久国产精品喷潮免费观看臀| 97超碰免费人人性爱| 日韩操啪| 97免费视频在线观看视频| 亚洲最大无码中文字幕网站| 亚洲欧美97| 欧美性暴力猛交XXXX| 性色生活片久久毛片婬片免费放女人一级毛片| 激情综合av| 99免费在线视频| 强奸乱伦AV一天堂网| 日本一区二区三区午夜观看| 亚洲国产精品久久久男人的天堂| 国产精品岛国片在线观看| 亚洲视频精选| 嗯~啊~快点 死我视频免费看网站| 404操逼福利视频| 欧美性暴力| 偷拍五区| 综合激情97 | 女色综合| 国产激情在线| 后入式999| 免費人妻夜夜爽天天爽爽一区| 亚洲 国产 精品一区| 欧美精品三级黄片| 快播电影网日韩新片| 91 亚洲情侣偷拍 久久| 国产精品久久久久绯色| 亚洲性爱高潮影院| 99色热| 欧美黄片视频在线观看免费| 日本狂喷奶水在线播放212| 91综合网在线| 91性情| 性性久久| 97精品97久久| 欧美日韩系列| 国产精品午夜福利| 深爱伊人影院| 农村妇女精品一二区| 超碰欧美97资源| 干妹子| 欧美激情高清性猛交| 少妇熟女一区二区三区| 久热精品在线| 天天看片青娱乐| 日本人妻最新在线中| 91天天| 内射夫妻三片| 国产成年免费大片黄在线观看| 色视频蜜乳| 日日噜噜夜夜狠狠视频无| 亚洲最新中文字幕免费| 中文字幕日本久久| 亚洲18禁| 欧美草草| 91AV入口| 91久久久久久| 一级黄碟在线观看| 日韩欧美蜜桃精品久久中文字幕久久 | 青青操国产夫妻| 视频一区二区三区精品| 午夜福利免费精品视频| 久久精彩视频9| 极品出轨视频网站| 日韩av性爱在线播放| 黑人精品成人一区二区三区| 五月婷婷深深爱| 日日干夜夜操视频h| 日日骚av| 免费a级毛片av无码久久精品中文字幕| 国产精品麻豆视频网站| 中文字暮97| 国内一级精品| 天天看,天天做| 97超碰这里只有精品| 久久久久久久唑| 欧美v亚洲v日韩v最新在线二区 | 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 国产黄片在线免费观看| 野狼激情网| 超碰9 7女人| 国产精品无码av嫩草| 91精品人妻一区二区三区蜜桃臀| 天美91| 999在线电影香蕉| 在线天堂资源亚洲| AV九九| 天天狂操夜夜狂日| 天天天天操| 殴美性天天| 久久午夜伦| 97免费在线| 九九热免费国产视频婷婷伊人五月 | 中日韩久久久| 997色在线| 久久,精品一二三| 精品传媒在线一区| 亚洲91网。| 国产精品网址| 超碰偷拍| 99免费视频| 超碰成人人人爽人人爽| 91亚州欧美| 18禁网站在线播放| 欧综合网| 日本久久999| 无码免费精品高清| 亚州欧美色图| 免费的黄片有限公司| 黑人与人妻| 97av,com| 五月天久久人妻| 欧美91精品国产自产| 欧美激情久操网| 黑人白女精品一区| 青青草丝袜在线视频| 欧美亚洲天天| 啊啊啊啊操死我了| 日韩另类| 首页中文字幕中文字幕免费| 人人妻人人爽一区二区三区| 美腿丝袜高跟网免费视频免费视频| japan日本高清乱xxxx| 国语精品av| 天天天天天天天天综合| 啊啊啊啊啊啊啊国| 91小视频| 国产欧美精选自拍一区| 国语精品av| 日韩BBN| 久久夜夜夜| 另类亚洲图色| 亚洲有薄码区日本系列中文字幕| 色色福利| 国产精品美女久久久久AⅤ国产馆| 新版天堂中文资源8在线| 97精| 日日躁狠狠躁天天躁精品| 男人的天堂在线| 少妇三P| 精品一区二区三区四区外站| 久久精品72| 69人妻精品丰满熟女区| 日韩二三区| 亚洲丝袜色图| 热久久99999| 亚洲的天堂网| 超碰色美女| 综合网91| 国产又色又粗又黄又爽| 成年人黄色视频免费| 亚洲丝袜综合| 亚洲天堂一区二区久久| 又粗又长又爽在线观看| 国产免费永久精品无码| 四虎永久在线精品免费网址| 秋霞午夜视频一区二区| 中文精品少妇天堂| 久久中文字幕一区不卡| 丁香九月激情啪| 午夜情侣自拍网站| 91嫩草在线| 中文字幕乱码在线| 亚洲AV麻豆Aⅴ无码电影一| AV和黑人在线播放| 久久久爆乳翘臀一线天伦理视频| 丝袜制服字幕在线| 人妻熟女一区二区| 日韩欧美大片免费高清啪啪| 口爆吞精在线观看| 精品久一区免费| 99日视频在线免费| 2023天天操夜夜操| 久操大香蕉手机视频在线看| 免费网站观看www在线观| 麻豆国产96在线| 成人色女网| 春色91| 激情五月婷婷| 97超碰超碰| 91最新综合| 欧美日韩午夜精品一区二区三区| 蜜臀久久99精品久久久久久久久| 精品少妇高潮久久| www.狠狠干.coom| 1769成人国产精品视频| 欧美性爱一内片一区二区三区| 国产品精品自在在线午夜免费| 人妻丝袜无 码视频专区| 哈哈操电影| 黄色二级片网站| 欧美成人四级在线播放| 欧美中字不卡| 丁香五月天激情综合| 天堂v无码免费视频| 欧美一区二区成人一卡| 日韩人妻一区二区精品| 91老熟女视频| 亚洲激情天堂网| 爱射综合| 欧美日韩国产另类综合| 91麻豆天美国产欧美高潮| 天天综合网国产| 91爆操视频| 草草电影院| 熟女少妇一区二区三区| 男生女生啊啊啊啊| 操操碰| 国产亚洲日本精品在线| 国产97亚洲| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 久偷拍欧美日韩三区| 色999;丁香五月| 国产极品美女高潮无套在线观看 | 中文字幕美女91| 亚洲一二三四区| yazhououmeizongya| 亚洲熟女乱色一区二区三区久久久 | 狠狠操一区二区| 日本有码影片下载| 91狠狠色丁香婷婷综合久久精品| 中文字幕一区二区在线日韩精品| 97综合久久| 精品久久久久久久| 欧洲精品二区| 日本一线产区和二线产区伦理片| 九九九久久久久| 一区二区 日韩 欧美 国产 传媒| 人妻天天夜夜爽一区二区| 九九aV| 天天干少妇| 青青操97| 成人日韩中文字幕| 亚洲av热热色| 97超碰这里只有精品| 加勒比伊人综合| 一本色道久久综合熟妇| 欧美最大综合网| 亚洲天天自拍| 亚洲九九九九| 综合久久久久久久综合网| 新久久AV| 人妻人人操| 欧美.亚洲.另类.丝袜.制服.诱惑| 久久久一区二区三区四曲免费听| 日韩久久三区| 男女激情中文字幕| 欧美天天射| 国产高清在线观看欧美| 亚洲午夜AV| 乱抡国产91| 激情天天视频| 日韩一区二区高清在线观看的| 亚洲欧美精品福利在线| 色婷婷丁香五月天| 国产精品久久久久久久久久久久久久久久久久 | 男人的天堂VA在线| 青青草女人天天干| 婷婷爽人人婷婷爽视频| 日韩性爱1级片视频| 五月丁香激情综合| 诱惑人妻欧美一区在线播放| 欧美后入式| 肏逼视频日本| 亚洲AV噜噜狠狠网址蜜桃动漫| 凹凸久久人人| 毛片视频白嫩| 蜜汁欧美| 乱伦AVxx| 我中文字幕6区 | 青椒国产97在线熟女| 国产一区二区三区中文字幕| 久偷拍欧美日韩三区| 黄页av| 丰满人妻一区二区三区| 自拍亚洲综合| 三级AV入口| 久久久18禁| 欧美在线永久天堂| 六六久久日韩不卡| 97综合激情| 婷婷丁香六月| 91夜色| 女一区二区| 91搞逼视频| 亚洲污污网站| 国产黄色小视频网站| 国产精品久久久蜜臀| 可以免费看黄片的视频| 内射日韩大臀美女| 日本αv| 色九九九综合| 国模艳艳啪啪一区| 美女让帅哥通她小鸡鸡| 青青草天天亲夜夜操网| 美女91网| 青青国产精品在线| 日韩av无码网站| 欧美天堂亚洲电影院一区在线播放| 国产久久免费精品视频| 嗯,啊。舔我逼| 污啪啪啪视频| www.99中文字幕| 91M一社| 99蜜桃臀亚洲成人在线观看| 久久精品国产亚洲AV片多多| 婷婷人妻激情| 四虎884a| 殴美牲| 中文字幕精品一区二区精| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 操逼网站视频漫画国产| 中文字幕熟女人妻丝袜丝| 精品性爱一二三区| 2017亚洲天堂| 青青国产在线拍揄自揄拍| 精品亚洲黄色片 国产精品导航一区二区| 国语精品av| 人妻久久久久久久久久久久久久久| 亚洲无992tv| 2020中文字幕在线| 一区二区三区日韩欧美| 国内91熟女人妻丝袜天天精品视频在线 | 中文字幕在线观看网页| 99热精品免费| 92午夜免费福利视频| 国产无马在线| 精品视频久久| 欧美日韩222| 六月丁香五月婷婷| 欧美性巨大╳╳╳╳╳高跟鞋| 天天日夜干| 九九人妻| 一二三四视频在线社区中文字幕| 9久久9综合| 用力操死我| 在线观看A啊啊啊| 亚洲啪啪综合?v一区综合精品区| 97综合在线观看| 无码一区二区三区四区五区六区七区八区九区十区视频 | 毛片99-全集电影手机免费观看完整-B029AV| 午夜性| 久草精品国产蜜臀| 91美女色视频亚洲| 中文字幕第二页| 欧美黑人熟妇精品91| 亚洲无992tv| 天天谢天天干| 亚洲欧美国产日本一区二区三区| 久99热| 久久夜色一区二区| 久久久久久久久久久精| 91美女小视频| 国产亚洲欧美每日在线| 大香网站| 久久久久国产亚洲一区欧美色图日韩 | 91中文字幕制服丝袜免费视频| 女人天堂av在线播放| 波多野结衣先锋影音| 亚洲综合网电影91| 99国产精品免费| 欧美性高潮| aaaa黄片| www.AV有限公司一区| 999色欧美中文字幕| 人人看人人插| 亚洲欧美精品一区天堂久久 | 波多野结衣AV无码一区| 18禁的网站在线| 亚洲无码com| AV九九| 欧洲亚洲人人爽爽视频| 一级成人性爱| 青青草密桃在线播放| 熟女少妇一区二区三区| 美女尤物人人操| 夜夜嗨av午夜成人| 欧美色女人| av在线人气| 香港澳门日本三级网站| 国产亚洲 中文欧美久久| 天天干18禁| 一品道视频一区二区三区| 久久久久久综合久久伊人蜜月| 懂色AV蜜臀无码精品APP| 日欧毛片久久| 无码聚合| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 大鸡巴久久久| 97免费在线观看| 欧美亚洲丝袜美女电影| av在线播放国产一区| 91大神电影天堂| 国产最火爆久久国产网站网站| 亚洲精品骚逼| 天天做日日做天天欢。| 天天干夜夜| 色嘟嘟人妻天堂网| 福利社区午夜一区二区| 国产日韩中文字幕欧美| 欧美性爱系列| 国产综合色精品在线观看| 1204金沙人妻懂旧版免费| 亚洲国产一区二区三区四区国产| 九九这里只有精品| 婷婷五月天久久精品视频一区二区三区| 国产精品爱欲| 超碰97丝袜| 十八禁电影伊人网| 91ise欧美| 91精品啪在线观看国产城中村| 日韩在线观看三级电影| 99re热| 欧美久久九九| 欧美一区二区亚洲天堂| 国产特级毛片AAAAAA高潮流水| 欧美综合色,www| 北野未奈加勒比av| 中文字幕天天天天天| 五月天婷婷色| 制服乱伦| 另类小色呦| 欧美偷拍区| 午夜成人爽爽爽爽A片李冰冰| 96超碰网| 91熟女网| 97人人夜| 中出20p| 精品人妻一区二区三区四区| 热久久无毒不卡| 久久人妻一区二区三区高清| 综合亚洲情色|