日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用腾讯云 SCF 云函数压缩 COS 对象存储文件

發布時間:2024/3/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用腾讯云 SCF 云函数压缩 COS 对象存储文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎大家前往騰訊云技術社區,獲取更多騰訊海量技術實踐干貨哦~

作者:騰訊云Serverless團隊

在使用騰訊云 COS 對象存儲的過程中,我們經常有想要把整個 Bucket 打包下載的需求,但是 COS 并沒有提供整個 Bucket 打包下載的能力。這時,我們可以利用騰訊云的 SCF 無服務器云函數,完成 COS Bucket 的打包,并重新保存壓縮后的文件到 COS 中,然后通過 COS 提供的文件訪問鏈接下載文件。

但是在使用 SCF 云函數進行 COS Bucket 打包的過程中,偶爾會碰到這樣的問題:我期望將某個 COS Bucket 內的文件全部下載下來然后打包壓縮,把壓縮文件再上傳到 COS 中進行備份;但是在這個過程中,COS Bucket 內的文件可能數量多體積大,而 SCF 云函數的運行環境,實際只有 512MB 的 /tmp 目錄是可以讀寫的。這樣算上下載的文件,和生成的 ZIP 包,可能僅支持一定體積的文件處理,滿足不了所需。怎么辦?

在這種情況下,可能有的同學會想到使用內存,將內存轉變為文件系統,即內存文件系統,或者直接讀取文件并放置在內存中,或者在內存中生成文件。這種方法能解決一部分問題,但同時也帶來了些其他問題:

  • SCF 云函數的內存配置也是有上限的,目前上限是 1.5GB。
  • SCF 云函數的收費方式是按配置內存*運行時間。如果使用配置大內存的方法,實際是在為可能偶爾碰到的極端情況支付不必要的費用,不符合我們使用 SCF 云函數就是要精簡費用的目的。
  • 我們在這里嘗試了一種流式文件處理的方式,通過單個文件壓縮后數據立即提交 COS 寫的方法,一次處理一個文件,使得被壓縮文件無需在 SCF 的緩存空間內堆積,壓縮文件也無需放在緩存或內存中,而是直接寫入 COS。在這里,我們實際利用了兩種特性:ZIP 文件的數據結構特性和 COS 的分片上傳特性。

    zip 文件的數據結構

    在官方文檔中給出的 zip 文件格式如下:

    Overall .ZIP file format:[local file header 1][file data 1][data descriptor 1]. ..[local file header n][file data n][data descriptor n][archive decryption header] (EFS)[archive extra data record] (EFS)[central directory][zip64 end of central directory record][zip64 end of central directory locator] [end of central directory record]

    可以看到,實際的 zip 文件格式基本是[文件頭+文件數據+數據描述符]{此處可重復n次}+核心目錄+目錄結束標識
    組成的,壓縮文件的文件數據和壓縮數據是在文件頭部,相關的目錄結構,zip文件信息存儲在文件尾部。這樣的結構,為我們后續 COS 分片上傳寫入帶來了方便,可以先寫入壓縮數據內容,再寫入最終文件信息。

    COS 分片上傳

    COS 分片上傳按照如下操作即可進行:

  • 初始化分片上傳:通過初始化動作,獲取到此次上傳的唯一標識ID。此ID需要保存在本地并在后續上傳分片時使用。
  • 上傳分片:通過初始化時獲取到的ID,配合文件分片的順序編號,依次上傳文件分片,獲取到每個分片的ETag;COS 會通過 ID 和分片順序編號,拼接文件。
  • 結束上傳:通過初始化時獲取到的ID,結合分片的順序編號和ETag,通知 COS 分片上傳已經完成,可以進行拼接。
  • 在上傳過程中,還隨時可以查詢已上傳分片,或結束取消分片上傳。

    文件壓縮處理流程設計

    利用 zip 文件數據結構中文件壓縮數據在前目錄和額外標識在后的特性,和 COS 支持分片上傳的特性,我們可以利用流式文件處理方式來依次處理文件,并且做到處理完成一個文件壓縮就上傳處理后的壓縮數據分片。這種處理流程可以簡化為如下說明:
    1. 初始化 zip 文件數據結構,并將數據結構保存在內存中。
    2. 初始化 COS 分片上傳文件,保存好分片上傳 ID。
    3. 下載要放入壓縮包的文件至本地,使用 zip 算法,生成壓縮文件的數據內容并保存在內存中,并根據目錄格式,更新zip數據格式中的目錄標識。
    4. 將壓縮后的文件數據使用 COS 上傳分片,上傳至 COS 中。
    5. 清理刪除下載至本地的需壓縮文件。
    6. 根據需要,重復 3~5 步驟,增加壓縮包內的文件。
    7. 在壓縮文件處理完成后,使用分片上傳,將內存中的 zip 文件數據結構最后的目錄結構部分上傳至 COS。
    8. 通知 COS 結束上傳,完成最終 zip 文件的自動拼接。

    在這個處理流程中,一次只處理一個文件,對本地緩存和內存使用都只這一個文件的占用,相比下載全部文件再處理,大大減小了本地緩存占用和內存占用,這種情況下,使用少量緩存和內存就可以完成 COS 中大量文件的壓縮打包處理。

    使用SCF進行 COS 文件壓縮處理實現

    流式壓縮文件庫 archiver

    我們這里使用 node.js 開發語言來實現 COS 文件壓縮處理。我們這里使用了 cos-nodejs-sdk-v5 sdk 和 archiver 模塊。其中 archiver 模塊是實現zip和tar包壓縮的流式處理庫,能夠通過 append 輸入欲壓縮文件,通過 stream 輸出壓縮后的文件流。archiver的簡單用法如下:

    // require modules var fs = require('fs'); var archiver = require('archiver');// create a file to stream archive data to. var output = fs.createWriteStream(__dirname + '/example.zip'); var archive = archiver('zip', {zlib: { level: 9 } // Sets the compression level. });// pipe archive data to the file archive.pipe(output);// append a file from stream var file1 = __dirname + '/file1.txt'; archive.append(fs.createReadStream(file1), { name: 'file1.txt' });// append a file archive.file('file1.txt', { name: 'file4.txt' });// finalize the archive (ie we are done appending files but streams have to finish yet) // 'close', 'end' or 'finish' may be fired right after calling this method so register to them beforehand archive.finalize();

    archiver 將會在每次 append 文件的時候,將文件的壓縮數據輸出到 pipe 指定的輸出流上。因此,我們在這里可以通過實現我們自身的 WriteStream,獲取到 archiver 的寫請求,并把寫入內容轉移到 COS 模塊的分片上傳能力上。在這里,我們實現的 WriteStream 為:

    var Writable = require('stream').Writable; var util = require('util');module.exports = TempWriteStream;let handlerBuffer;function TempWriteStream(options) {if (!(this instanceof TempWriteStream))return new TempWriteStream(options);if (!options) options = {};options.objectMode = true;handlerBuffer = options.handlerBuffer;Writable.call(this, options); }util.inherits(TempWriteStream, Writable);TempWriteStream.prototype._write = function write(doc, encoding, next) {handlerBuffer(doc);process.nextTick(next) };

    通過集成 nodejs 中的 Writable stream,我們可以將寫操作轉移到我們所需的 handle 上去,handle 可以對接 COS 的分片上傳功能。

    COS 分片上傳

    COS 分片上傳功能的實現如下,我們將其封裝為 Upload 模塊:

    const cos = require('./cos')let Duplex = require('stream').Duplex; function bufferToStream(buffer) {let stream = new Duplex();stream.push(buffer);stream.push(null);return stream; }// 大于4M上傳 const sliceSize = 4 * 1024 * 1024function Upload(cosParams) {this.cosParams = cosParams;this.partNumber = 1;this.uploadedSize = 0;this.Parts = []this.tempSize = 0;this.tempBuffer = new Buffer('') }Upload.prototype.init = function (next) {const _this = this;cos.multipartInit(this.cosParams, function (err, data) {_this.UploadId = data.UploadIdnext()}); } Upload.prototype.upload = function(partNumber, buffer) {const _this = this;const params = Object.assign({Body: bufferToStream(buffer),PartNumber: partNumber,UploadId: this.UploadId,ContentLength: buffer.length}, this.cosParams);cos.multipartUpload(params, function (err, data) {if (err) {console.log(err)} else {_this.afterUpload(data.ETag, buffer, partNumber)}}); }Upload.prototype.sendData = function (buffer) {this.tempSize += buffer.length;if (this.tempSize >= sliceSize) {this.upload(this.partNumber, Buffer.concat([this.tempBuffer, buffer]))this.partNumber++;this.tempSize = 0;this.tempBuffer = new Buffer('')} else {this.tempBuffer = Buffer.concat([this.tempBuffer, buffer]);} }Upload.prototype.afterUpload = function (etag, buffer, partNumber) {this.uploadedSize += buffer.lengththis.Parts.push({ ETag: etag, PartNumber: partNumber })if (this.uploadedSize == this.total) {this.complete();} }Upload.prototype.complete = function () {this.Parts.sort((part1, part2) => {return part1.PartNumber - part2.PartNumber});const params = Object.assign({UploadId: this.UploadId,Parts: this.Parts,}, this.cosParams);cos.multipartComplete(params, function (err, data) {if (err) {console.log(err)} else {console.log('Success!')}}); }Upload.prototype.sendDataFinish = function (total) {this.total = total;this.upload(this.partNumber, this.tempBuffer); }module.exports = Upload;

    對于 COS 本身已經提供的 SDK,我們在其基礎上封裝了相關查詢,分片上傳初始化,分片上傳等功能如下:

    const COS = require('cos-nodejs-sdk-v5');const cos = new COS({AppId: '125xxxx227',SecretId: 'AKIDutrojxxxxxxx5898Lmciu',SecretKey: '96VJ5tnlxxxxxxxl5To6Md2', }); const getObject = (event, callback) => {const Bucket = event.Bucket;const Key = event.Key;const Region = event.Regionconst params = {Region,Bucket,Key};cos.getObject(params, function (err, data) {if (err) {const message = `Error getting object ${Key} from bucket ${Bucket}.`;callback(message);} else {callback(null, data);}}); };const multipartUpload = (config, callback) => {cos.multipartUpload(config, function (err, data) {if (err) {console.log(err);}callback && callback(err, data);}); };const multipartInit = (config, callback) => {cos.multipartInit(config, function (err, data) {if (err) {console.log(err);}callback && callback(err, data);}); };const multipartComplete = (config, callback) => {cos.multipartComplete(config, function (err, data) {if (err) {console.log(err);}callback && callback(err, data);}); };const getBucket = (config, callback) => {cos.getBucket(config, function (err, data) {if (err) {console.log(err);}callback && callback(err, data);}); };module.exports = {getObject,multipartUpload,multipartInit,multipartComplete,getBucket };

    在具體使用時,需要將文件中 COS 相關登錄信息的APPId,SecretId,SecretKey等替換為自身可用的真實內容。

    功能入口實現函數

    我們在最終入口函數 index.js 中使用各個組件來完成最終的目錄檢索,文件壓縮打包上傳。在這里,我們利用函數入參來確定要訪問的 bucket 名稱和所屬地域,期望壓縮的文件夾和最終壓縮后文件名。云函數入口函數仍然為 main_handler。

    // require modules const fs = require('fs'); const archiver = require('archiver');const cos = require('./cos');const Upload = require('./Upload')const TempWriteStream = require('./TempWriteStream')const start = new Date();const getDirFileList = (region, bucket, dir, next) => {const cosParams = {Bucket: bucket,Region: region,}const params = Object.assign({ Prefix: dir }, cosParams);cos.getBucket(params, function (err, data) {if (err) {console.log(err)} else {let fileList = [];data.Contents.forEach(function (item) {if (!item.Key.endsWith('/')) {fileList.push(item.Key)}});next && next(fileList)}}) }const handler = (region, bucket, source, target) => {const cosParams = {Bucket: bucket,Region: region,}const multipartUpload = new Upload(Object.assign({ Key: target}, cosParams));const output = TempWriteStream({ handlerBuffer: multipartUpload.sendData.bind(multipartUpload) })var archive = archiver('zip', {zlib: { level: 9 } // Sets the compression level.});output.on('finish', function () {multipartUpload.sendDataFinish(archive.pointer());});output.on('error', function (error) {console.log(error);});archive.on('error', function (err) {console.log(err)});archive.pipe(output);multipartUpload.init(function () {getDirFileList(region, bucket, source, function(fileList) {let count = 0;const total = fileList.length;for (let fileName of fileList) {((fileName) => {let getParams = Object.assign({ Key: fileName }, cosParams)cos.getObject(getParams, (err, data) => {if (err) {console.log(err)return}var buffer = data.Body;console.log("download file "+fileName);archive.append(buffer, { name: fileName.split('/').pop() });console.log("zip file "+fileName);count++;if (count == total) {console.log("finish zip "+count+" files")archive.finalize();}})})(fileName)}})}) }exports.main_handler = (event, context, callback) => {var region = event["region"];var bucket = event["bucket"];var source = event["source"];var zipfile = event["zipfile"];//handler('ap-guangzhou', 'testzip', 'pic/', 'pic.zip');handler(region, bucket, source, zipfile) }

    測試及輸出

    最終我們將如上的代碼文件及相關依賴庫打包為zip代碼包,創建函數并上傳代碼包。同時我們準備好一個 COS Bucket命名為 testzip, 在其中創建 pic 文件夾,并在文件夾中傳入若干文件。通過函數頁面的測試功能,我們使用如下模版測試函數:

    { "region":"ap-guangzhou", "bucket":"testzip", "source":"pic/", "zipfile":"pic.zip" }

    函數輸出日志為:

    ... 2017-10-13T12:18:18.579Z 9643c683-b010-11e7-a4ea-5254001df6c6 download file pic/DSC_3739.JPG 2017-10-13T12:18:18.579Z 9643c683-b010-11e7-a4ea-5254001df6c6 zip file pic/DSC_3739.JPG 2017-10-13T12:18:18.689Z 9643c683-b010-11e7-a4ea-5254001df6c6 download file pic/DSC_3775.JPG 2017-10-13T12:18:18.690Z 9643c683-b010-11e7-a4ea-5254001df6c6 zip file pic/DSC_3775.JPG 2017-10-13T12:18:18.739Z 9643c683-b010-11e7-a4ea-5254001df6c6 download file pic/DSC_3813.JPG 2017-10-13T12:18:18.739Z 9643c683-b010-11e7-a4ea-5254001df6c6 finish zip 93 files 2017-10-13T12:18:56.887Z 9643c683-b010-11e7-a4ea-5254001df6c6 Success!

    可以看到函數執行成功,并從 COS Bucket 根目錄看到新增加的 pic.zip 文件。

    項目源代碼及改進方向

    目前項目所有源代碼已經放置在 Github 上,路徑為 https://github.com/qcloud-scf/demo-scf-compress-cos。可以通過下載或 git clone 項目,獲取到項目源代碼,根據自身帳號信息,修改 cos 文件內的帳號 APPId、SecretId、SecretKey這些認證信息,然后將根目錄下所有文件打包至 zip 壓縮包后,通過 SCF 創建函數并通過 zip 文件上傳代碼來完成函數創建,根據上面所屬的“測試及輸出”步驟來測試函數的可用性。

    函數在此提供的仍然只是個demo代碼,更多的是為大家帶來一種新的思路及使用騰訊云 SCF 無服務器云函數和 COS 對象存儲。基于此思路,Demo本身后續還有很多可以改進的方法,或根據業務進行變化的思路:

  • 文件的處理目前還是下載一個處理一個,其實我們可以使用多線程和隊列來加速處理過程,使用若干線程持續下載文件,使用隊列對已經下載完成待處理的文件進行排隊,然后使用一個壓縮線程從隊列中讀取已下載的文件后進行壓縮上傳處理。這種方式可以進一步加快大量文件的處理速度,只是需要小心處理好緩存空間被使用占滿后的等待和文件處理完成后的刪除釋放空間。
  • 目前 Demo 從入參接受的是單個地域、Bucket、目錄和輸出文件,我們完全可以改造為從多個地域或Bucket拉取文件,也可以傳遞指定的文件列表而不是僅一個目錄,同時函數執行觸發可以使用 COS 觸發或 CMQ 消息隊列觸發,能夠形成更加通用的壓縮處理函數。
  • 后續對于此 Demo 如果有更多疑問,想法,或改進需求,歡迎大家提交 git pr 或 issue。項目地址:https://github.com/qcloud-scf/demo-scf-compress-cos

    相關閱讀

    使用騰訊云 CDN 、COS 以及萬象優圖實現HTTP/2樣例
    如何利用云對象存儲 COS 免費托管靜態網站
    Serverless 初探


    此文已由作者授權騰訊云技術社區發布,轉載請注明文章出處
    原文鏈接:https://cloud.tencent.com/community/article/810260

    總結

    以上是生活随笔為你收集整理的使用腾讯云 SCF 云函数压缩 COS 对象存储文件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久草网在线 | 69精品久久 | 日韩有色| 国产一区二区在线观看视频 | 九九精品视频在线 | 国产精品欧美一区二区三区不卡 | 久草免费在线观看视频 | 91av资源在线 | 久久在现视频 | 久久嗨 | 国产免费一区二区三区网站免费 | 天天操天天爱天天爽 | 91tv国产成人福利 | 91在线播放国产 | 99久久久国产精品免费99 | 国产一二三区在线观看 | 91看片看淫黄大片 | 五月天com| 亚洲黄色免费在线看 | 中文字幕4 | 欧美污在线观看 | 国产一级片一区二区三区 | 乱男乱女www7788 | 在线视频91 | 欧美午夜精品久久久久久浪潮 | 亚洲日本在线一区 | 天天色天天草天天射 | 午夜精品一区二区三区在线观看 | av免费电影在线观看 | 97色婷婷成人综合在线观看 | 成人一级免费视频 | 在线观看免费福利 | 免费精品 | 精品国产一区二区三区久久久蜜月 | 国产高清精 | 日韩国产精品一区 | 国产淫a | 亚洲3级 | 国产在线观看黄 | 婷婷国产一区二区三区 | 伊人影院av | 99国产情侣在线播放 | av电影在线播放 | 国产在线观看中文字幕 | 成人在线视频在线观看 | 欧美一级特黄高清视频 | av亚洲产国偷v产偷v自拍小说 | 亚一亚二国产专区 | 一本一道久久a久久精品蜜桃 | 又黄又爽又色无遮挡免费 | 91精品国产入口 | 婷婷5月激情5月 | 午夜美女wwww | 欧美日韩精品免费观看 | 7777xxxx| 久久免费视频6 | 日日弄天天弄美女bbbb | 免费观看mv大片高清 | 亚洲成人免费在线 | 在线电影 你懂得 | 天天草综合网 | 久久久久日本精品一区二区三区 | 国产偷在线| 久久精品aaa | 色噜噜噜噜 | 国产精品第2页 | 特级西西444www大精品视频免费看 | 黄色在线观看污 | 国产在线超碰 | 久久午夜网| 天天摸天天干天天操天天射 | 在线视频第一页 | 日日干天天 | 五月天色网站 | 少妇高潮流白浆在线观看 | 黄色成人影院 | 成人av电影网址 | 国产成人精品av | 久久久久久高潮国产精品视 | 免费成人黄色 | 亚洲欧美国产日韩在线观看 | 亚洲一级片在线观看 | 久久午夜国产精品 | 手机成人免费视频 | 成年人网站免费在线观看 | 婷婷在线看 | 亚洲 中文 欧美 日韩vr 在线 | 91丝袜美腿 | 99久久爱 | 久久精品国产v日韩v亚洲 | 麻豆一区二区 | 国语自产偷拍精品视频偷 | 久久亚洲免费视频 | 麻豆视频免费在线观看 | 日韩精品久久久久久久电影99爱 | 国产在线观看91 | 亚洲三级毛片 | 成年人黄色大片在线 | 干 操 插| 国产高清小视频 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产一级免费在线 | 蜜桃av人人夜夜澡人人爽 | 国产福利av在线 | 久久国产视屏 | 亚洲精品欧美成人 | av一级片在线观看 | 五月天激情综合网 | 欧美日韩网站 | 久久高清 | 亚洲精品xxx | 日韩精品免费一区二区在线观看 | 久久好看| 波多野结衣精品在线 | 在线免费观看国产 | 日韩亚洲国产精品 | 免费看片黄色 | 欧美激情第一区 | 一色av| 久久乱码卡一卡2卡三卡四 五月婷婷久 | 国产小视频在线观看 | 欧美成人手机版 | 9999精品免费视频 | 五月天婷婷综合 | 国产精品第2页 | 欧美成人h版在线观看 | 99久久夜色精品国产亚洲 | 国产在线国偷精品产拍免费yy | 日韩欧美高清一区二区 | 亚洲精品乱码久久久久v最新版 | 91av在线视频免费观看 | 亚洲精品免费在线视频 | 97视频免费观看 | 国产精品日韩在线播放 | 久久99精品久久久久久久久久久久 | 午夜精品视频免费在线观看 | 免费在线观看成人小视频 | 中文在线免费一区三区 | 毛片网在线观看 | 欧美日韩精品电影 | 久久国产精品99久久久久久老狼 | 00av视频 | 亚洲五月六月 | 在线日韩亚洲 | 欧美在线你懂的 | 超碰97av在线| 九九精品视频在线 | 少妇自拍av| 不卡电影一区二区三区 | 成人久久18免费网站 | 在线视频在线观看 | 精品国产一区二区三区四区在线观看 | 在线观看www视频 | 正在播放 国产精品 | 91精品国产自产老师啪 | 成人永久在线 | 在线视频一区观看 | 国产精品乱看 | 欧美激情精品久久久久久免费印度 | 久久国际影院 | 激情视频综合网 | 亚洲国产精品va在线看黑人 | 81精品国产乱码久久久久久 | 婷婷免费视频 | 最近中文字幕mv免费高清在线 | 超碰日韩 | 久久91网 | 人人cao | 日韩成人精品一区二区三区 | 国产精品久久久久久久久免费看 | 亚洲精品白浆高清久久久久久 | 免费看黄色大全 | 日韩精品一区在线播放 | 国产小视频在线观看免费 | 国产成人精品一区在线 | 久久在线精品 | 91九色自拍| 国产精品com| 久久久久免费视频 | 很黄很色很污的网站 | 国产精品大全 | 高清不卡免费视频 | 成人小视频免费在线观看 | 国产99久久久久 | 久久久久久国产精品亚洲78 | 成人动漫视频在线 | 激情在线网址 | 99re6热在线精品视频 | 精品国产乱码久久久久久浪潮 | 国产一级二级三级视频 | 在线观看黄色免费视频 | 亚洲精品黄网站 | 91av九色| 日韩色av色资源 | 手机看国产毛片 | 丁香婷婷激情 | 9ⅰ精品久久久久久久久中文字幕 | 日日操日日干 | av一区在线 | 成人在线视频一区 | av一级在线 | 九九99| 久久不卡免费视频 | 91在线亚洲 | 黄色软件在线观看免费 | 亚洲成av人影片在线观看 | 日韩欧美高清一区二区三区 | 日韩精品第1页 | 色吊丝av中文字幕 | www久久九| 天天草天天草 | 国产九九九视频 | 日日躁夜夜躁xxxxaaaa | 国产xx在线 | 在线播放精品一区二区三区 | 久久伊人八月婷婷综合激情 | 少妇bbw搡bbbb搡bbbb | 成年人在线观看视频免费 | 欧美性久久久 | 日本精品一区二区在线观看 | 久久神马影院 | 在线观看色网站 | 亚洲综合色视频 | 美女免费视频网站 | 在线网站黄 | 欧美激情精品久久久久久 | 国产综合91 | 六月丁香综合 | 欧美在线99 | 国产精品九九久久99视频 | 亚洲精品在线免费观看视频 | 日日夜夜爱 | 国产成人精品一区二区三区 | 免费人成在线观看 | 中文字幕中文 | 麻豆传媒视频在线免费观看 | 国产视频久久久久 | 国产一二三区av | 国产高清不卡一区二区三区 | 欧美一区成人 | 久久九九九九 | 欧美日韩免费一区二区三区 | 日韩有码第一页 | 伊人色播| 欧美综合干 | 在线v片免费观看视频 | 精品九九九 | 成人免费色 | 亚州精品天堂中文字幕 | 少妇搡bbbb搡bbb搡aa | 国产精品国内免费一区二区三区 | 在线看国产视频 | 久久99精品久久久久久 | 久久九九久久精品 | 色97在线| 天天天天综合 | 中文字幕精品视频 | 国产精品亚洲片夜色在线 | 久久99精品国产一区二区三区 | 国内精品久久久久影院男同志 | av福利在线导航 | 久久夜靖品 | 亚洲dvd| 午夜影院一级片 | 国产精品久久久久久久久久久久久久 | 九七人人干 | 免费久久网站 | 成年人在线观看 | 国产精品18久久久久久vr | 久久精品一区二区三 | 九草视频在线 | 黄色的片子 | 韩国av电影在线观看 | 久久久久一区二区三区 | 久久久久国 | 免费久久精品视频 | 国产亚洲欧美日韩高清 | 欧美 日韩 国产 成人 在线 | 天天操天天爱天天爽 | 久久er99热精品一区二区 | 久草香蕉在线视频 | 久久的色 | 中文字幕资源在线 | 日韩系列在线 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 久久久久二区 | 99久久精品国产观看 | 成人在线免费看 | 免费黄色网址大全 | 高清av免费一区中文字幕 | 亚洲国产天堂av | 最新成人在线 | 国产99久久九九精品免费 | 国产成人一区二区三区 | 日韩国产精品久久 | 国产精品成人免费精品自在线观看 | 亚洲成人精品久久久 | 91成人精品一区在线播放69 | 综合久久久久久 | 在线观看精品一区 | 日韩美女黄色片 | 国产精品资源 | 欧美激情综合五月色丁香 | 久久久免费电影 | 91资源在线观看 | 五月天高清欧美mv | 在线看一区二区 | 久草在线视频免赞 | 久草视频在线看 | 国产99久久久国产 | 国产三级国产精品国产专区50 | 亚洲专区免费观看 | 中文字幕国产亚洲 | 国产一区二区在线免费播放 | 久草在线一免费新视频 | 国产麻豆剧果冻传媒视频播放量 | 综合久久久| 97国产| 日日夜夜狠狠操 | 精品99免费| 中文在线免费观看 | 黄色成人91| 国产精品99久久久久久宅男 | 久久视| 亚洲成人资源 | av电影一区二区三区 | 午夜视频在线网站 | 日本韩国中文字幕 | 日韩午夜视频在线观看 | 一区二区三区在线免费播放 | 韩日精品在线 | 久久视频在线观看 | 中文字幕在线观看网 | 欧美国产91| 丁香六月国产 | 日韩国产精品一区 | 中文字幕精品一区久久久久 | 亚洲精品中文字幕视频 | 粉嫩av一区二区三区四区在线观看 | 亚洲三级网站 | 欧美日韩一级久久久久久免费看 | 狠狠干夜夜操天天爽 | 国产精品久久久久久久久久三级 | 精品国产资源 | 黄色三级在线 | 最新影院| 国产不卡一二三区 | 天天色天天射综合网 | 91av视频在线免费观看 | 国产黄色片在线 | 日本在线精品视频 | 日韩欧美69| 国产精品一区二区62 | 黄色毛片在线观看 | av在线收看 | 亚洲国产精品va在线看 | 欧美成年性 | 99视频久久 | 亚洲高清视频在线播放 | 最近最新中文字幕视频 | 国产一区二区播放 | 亚洲午夜精品久久久久久久久 | 在线播放 一区 | 国产精品久99 | 天天干天天操天天射 | 国产特级毛片 | 97色婷婷人人爽人人 | 麻豆一区二区三区视频 | av在线收看 | 黄色小说在线免费观看 | 久草| 久久视频 | 久久久久久久久久久久久国产精品 | 亚洲我射av| 97超碰在线久草超碰在线观看 | 欧美大jb | 国产美女网站在线观看 | 久久高视频 | 日本色小说视频 | 日韩v在线 | 激情电影影院 | 三级黄色在线观看 | 一级全黄毛片 | 一区二区三区 中文字幕 | 久久成电影| 一级做a爱片性色毛片www | 少妇精品久久久一区二区免费 | 奇米影视在线99精品 | 国外av在线 | 久久久久久国产精品999 | 精品产品国产在线不卡 | 国产99精品在线观看 | 日韩av黄| 国产精品一区二区久久国产 | 天天色天 | 中文字幕高清在线播放 | 97超碰在线播放 | 日韩精品免费一区二区三区 | 在线观看视频一区二区三区 | 91九色视频导航 | 日本高清久久久 | 欧美日韩在线免费观看 | 亚洲动漫在线观看 | 在线黄色国产电影 | 99re久久精品国产 | 亚洲国产黄色 | 亚洲女同ⅹxx女同tv | 久久久久久久久久久久国产精品 | 日韩av视屏在线观看 | 日本久久久久久 | 一本一道久久a久久综合蜜桃 | 欧美综合色在线图区 | www.97色.com| 国产成人黄色在线 | 特黄免费av | 欧美精品二 | 欧美日韩国产在线观看 | 最新av网址在线观看 | 中文字幕一区二区三区视频 | 99久久精品国产亚洲 | 精品v亚洲v欧美v高清v | 久久久国产精品一区二区中文 | 国产一二区视频 | 免费男女羞羞的视频网站中文字幕 | 久久手机免费观看 | 美女网站一区 | 国产高清视频免费最新在线 | 日韩在线观看视频一区二区三区 | 三级黄色在线 | 国产精品第10页 | 激情五月激情综合网 | 国产精品九九九九九 | 久久精品一二三区白丝高潮 | 婷婷亚洲五月 | 日韩极品视频在线观看 | 亚洲一级电影在线观看 | 亚洲黄在线观看 | 91视频在线看 | 成人午夜电影在线播放 | 色综合天天综合 | 日韩美女av在线 | 久久久久综合精品福利啪啪 | 国产精品亚 | 欧美亚洲另类在线视频 | 色综合在 | 久久久毛片 | 久久视频在线视频 | 成全在线视频免费观看 | 国产精品国产毛片 | 在线看国产一区 | 久久夜夜操 | 粉嫩av一区二区三区四区五区 | 美女视频久久久 | 久久新视频 | 国产欧美日韩一区 | 久久亚洲电影 | 91精品一区二区三区久久久久久 | 怡红院av久久久久久久 | 国产一区免费看 | 国产精品av在线免费观看 | 激情五月婷婷 | 亚洲精品在线免费看 | 少妇搡bbbb搡bbb搡忠贞 | 久草视频在线播放 | 精品九九九九 | 国产精品丝袜在线 | 视频在线一区二区三区 | 日韩狠狠操 | 91资源在线 | 西西4444www大胆无视频 | 亚洲综合在线视频 | 国产一区电影在线观看 | 日韩av不卡在线 | 欧美一级视频在线观看 | 亚洲二区精品 | 国产成人三级在线观看 | 国内丰满少妇猛烈精品播放 | 欧美一区日韩一区 | 婷婷去俺也去六月色 | 国产免费久久久久 | 丁香电影小说免费视频观看 | 久久婷婷丁香 | 日韩在线精品 | 五月天婷婷免费视频 | 精品国产1区 | 高潮久久久久久久久 | 欧美激情第一页xxx 午夜性福利 | 99国产视频在线 | 亚洲国产精品日韩 | 成年人电影免费看 | 91九色网站 | 亚洲视频 在线观看 | 中国成人一区 | 六月色婷婷| a级国产乱理论片在线观看 特级毛片在线观看 | 中文字幕一区二区三区久久 | 国产美女黄网站免费 | 国产精品久久久久久久免费大片 | 免费精品视频在线 | 91一区二区三区久久久久国产乱 | 色婷婷综合成人av | 免费大片黄在线 | 最新精品国产 | 国产xxxx性hd极品 | 麻豆传媒在线免费看 | 日韩av片免费在线观看 | 欧美日韩在线观看一区二区 | 婷婷草| 欧美日韩高清不卡 | 日本性xxx| 看片网站黄色 | www国产在线 | 亚洲视频久久久 | 女人18精品一区二区三区 | 在线免费亚洲 | 黄色软件视频网站 | 免费看污片| 全黄色一级片 | 日韩一区正在播放 | 精品视频国产一区 | 色综合狠狠干 | 久久免费视频网 | 日韩免费在线网站 | 黄色毛片电影 | 激情五月综合 | 亚洲乱码国产乱码精品天美传媒 | 日本久久久亚洲精品 | 深夜国产在线 | va视频在线观看 | 美女一区网站 | 久久伊人精品一区二区三区 | 成人免费观看a | 亚洲一区二区三区毛片 | 久久精品最新 | 国产精品99爱 | 欧美一进一出抽搐大尺度视频 | av综合网址 | 亚洲精品66 | 国内精品久久久久影院一蜜桃 | 人人射人人射 | 五月开心综合 | 天天玩天天干 | 久久er99热精品一区二区三区 | 精品一区二区亚洲 | 成年人在线播放视频 | 亚洲激情视频在线观看 | 狠狠狠狠狠操 | 一区二区三区日韩精品 | 久久久久久久久久久国产精品 | 色婷婷久久久 | 久久成年人视频 | 婷婷视频导航 | 国产视频网站在线观看 | 成人精品在线 | 在线观看视频一区二区 | av中文字幕av | 精品国产一区二区三区在线 | 日韩在线免费高清视频 | 国产成人精品亚洲 | 免费av的网站 | 91九色最新 | 少妇性aaaaaaaaa视频 | 99久久er热在这里只有精品15 | 黄色av成人在线 | 最近中文字幕免费av | 婷婷国产在线观看 | 欧美久久99| 午夜精品电影 | 九九久久久久久久久激情 | 亚洲网站在线 | 国产69精品久久99的直播节目 | 国产精品18久久久久久久久久久久 | 四虎影视8848aamm | 国产二区av | 97热视频 | 精品视频资源站 | 国产成人三级一区二区在线观看一 | 免费福利视频网 | 久久综合九色综合网站 | 欧美日韩中文视频 | 精品久久亚洲 | 91成人小视频 | 久久天天躁狠狠躁亚洲综合公司 | 少妇啪啪av入口 | 亚洲成人免费 | 国产小视频在线观看免费 | 人人干干人人 | 在线观看免费高清视频大全追剧 | 色a综合 | 日韩在线观看一区二区 | 国产精品一区免费在线观看 | 欧美三级免费 | 亚洲美女精品区人人人人 | 在线免费观看一区二区三区 | 国产剧情一区二区在线观看 | 成人av片免费观看app下载 | 久久久久成人免费 | 久久精品久久99精品久久 | 日韩高清一二三区 | 国产精品毛片 | 久久在线免费观看视频 | 久草热久草视频 | av电影免费看 | 最近日本韩国中文字幕 | 精品国产一区二区三区免费 | 6080yy精品一区二区三区 | 国产一区二区视频在线 | 国产一级精品视频 | 久久福利小视频 | 国产高清精| 91九色视频在线观看 | 久久精品成人欧美大片古装 | 99精品欧美一区二区三区黑人哦 | 中文字幕在线一区观看 | 免费观看黄色12片一级视频 | 午夜精品av在线 | 黄色亚洲免费 | 一区二区三区中文字幕在线观看 | 成人wwwxxx视频 | 成人免费av电影 | 欧美福利视频一区 | 成人免费观看完整版电影 | 欧美性极品xxxx做受 | 国产精品涩涩屋www在线观看 | 日韩a级黄色 | 美女久久| 日本中文字幕在线 | 永久黄网站色视频免费观看w | 久久精品中文视频 | 中国一区二区视频 | 日韩一区二区三免费高清在线观看 | 欧美 日韩 国产 成人 在线 | 欧美天堂久久 | 精品亚洲va在线va天堂资源站 | 天天爱天天操 | 免费成人av | 久久久久精 | 国产91九色视频 | 五月天国产 | 手机在线黄色网址 | 9999免费视频| 在线观看国产v片 | 国产精品影音先锋 | 综合在线色| 99色在线观看视频 | 日韩三级视频在线观看 | 欧美色图亚洲图片 | 成人日批视频 | 色中射 | 日韩亚洲国产精品 | 伊人影院在线观看 | 久久字幕 | 免费看的黄色小视频 | 欧美精品国产精品 | 国产不卡片 | 黄在线免费看 | 在线看的av网站 | 久草视频看看 | 国产精品av电影 | 麻豆视频在线观看 | 99热九九这里只有精品10 | 草久在线播放 | 免费的国产精品 | 美女黄频免费 | 在线免费观看一区二区三区 | 午夜性福利 | 亚洲精品在线播放视频 | 毛片网站观看 | 亚洲精品男人天堂 | 美女久久久久久 | 久久999精品 | 午夜在线资源 | 91porny九色91啦中文 | 日韩精品中文字幕在线观看 | 亚洲电影自拍 | 久久一视频 | 国产麻豆视频免费观看 | 免费热情视频 | 欧美精品久久99 | 99999精品 | 中文字幕资源网 国产 | 91chinese在线| 国产精品正在播放 | av成人免费观看 | 国产高清网站 | 亚洲综合色激情五月 | 久久伦理网 | 91人人揉日日捏人人看 | 天天射天天射天天射 | 日本久久片 | 国产精品久久嫩一区二区免费 | 午夜精品电影一区二区在线 | 久久精品久久久精品美女 | 亚洲国产精品久久久久 | 免费成人在线观看 | 久视频在线播放 | 日韩美女免费线视频 | 精品999 | 一区二区三区免费在线播放 | 欧美日韩亚洲国产一区 | 国产高清无av久久 | 亚洲 中文 欧美 日韩vr 在线 | 一区二区激情 | 久艹在线播放 | 欧美日韩亚洲在线 | 日韩羞羞 | 91最新在线视频 | 蜜臀久久99精品久久久酒店新书 | 日韩欧美一区二区三区在线观看 | 久久精品草 | 国产高清视频免费 | 91精品国产综合久久福利 | 伊人天天操 | 国产护士hd高朝护士1 | www亚洲视频| 97碰视频| 精品一区久久 | 91精品系列| 国产精品99久久免费黑人 | 亚洲精品视频观看 | 久久精品视频在线观看 | 成年人在线观看视频免费 | 欧美日韩国产精品久久 | 国产真实在线 | 免费污片 | av电影免费在线 | 天天摸天天操天天爽 | 91精品一区二区三区久久久久久 | 麻豆久久久久久久 | 夜色资源网 | 欧美性极品xxxx做受 | 精品91视频| 久久夜色精品国产欧美一区麻豆 | 国产午夜剧场 | 久草在线资源视频 | 久久艹在线观看 | 国产欧美精品一区二区三区四区 | 欧美三人交 | 国产精品久久久久久久久久久久午夜 | 91av视频观看 | 99久久日韩精品视频免费在线观看 | 三级黄色免费片 | 免费在线日韩 | 狠狠狠色丁香婷婷综合久久五月 | 国产精品成人自产拍在线观看 | 六月丁香婷婷在线 | 久久综合五月婷婷 | 麻豆系列在线观看 | 综合网色 | 伊人国产在线观看 | 特级黄色片免费看 | 国产一级二级三级在线观看 | 国产亚洲综合性久久久影院 | 午夜精品久久久久久久久久久久久久 | 天堂在线一区 | 丁香六月久久综合狠狠色 | 在线视频一区二区 | 91.dizhi永久地址最新 | 亚洲精品小视频 | 日韩av一区二区三区在线观看 | 久久久91精品国产一区二区精品 | 久久久国产精品人人片99精片欧美一 | 在线观看免费91 | 中文字幕在线观看视频网站 | 激情av一区二区 | 欧美激情亚洲综合 | 久久午夜精品影院一区 | 久久a v视频 | 成人毛片一区 | 免费在线观看一级片 | 欧美精品久久久久久久久久丰满 | 久久综合射 | 国产精品99久久久久久宅男 | 亚洲高清视频在线 | 毛片3| 久久国语露脸国产精品电影 | 久久久久久在线观看 | 久久久久免费 | 成人三级视频 | 国产精品一区在线观看你懂的 | 超碰在线中文字幕 | www.av在线播放 | 免费a v在线 | 国产精品观看视频 | 亚洲成人精品av | www.天天草 | 久久精品网站视频 | 中文字幕在线免费 | 一区二区三区四区不卡 | 欧美一区二区三区不卡 | 亚洲最新合集 | 日本中文字幕在线视频 | 久久国产精品久久国产精品 | 国产免费美女 | 久久 一区 | 欧美日韩视频 | 激情xxxx | 久久久久女教师免费一区 | 99热在| 2021久久| 欧美一级特黄aaaaaa大片在线观看 | 亚洲日韩中文字幕 | 日韩动态视频 | 免费看成年人 | 成人免费一级片 | 亚洲精品中文在线资源 | 九九精品毛片 | 天天操天天操天天干 | 亚洲国产欧美在线看片xxoo | 日韩在线国产精品 | av一区二区三区在线播放 | 精品人妖videos欧美人妖 | 亚洲区视频在线 | 欧美精品久久久久久久久久丰满 | 97精品国产一二三产区 | 狠狠色丁香婷婷综合久小说久 | 国产精品va| 日韩精品视频网站 | 亚州视频在线 | 97色在线观看免费视频 | 婷婷激情综合五月天 | 亚洲在线色| 日本中文字幕观看 | 天天干天天拍天天操天天拍 | 久草在线视频看看 | 在线观看免费国产小视频 | 婷婷六月综合亚洲 | 国产资源精品在线观看 | 99热在线国产 | 18性欧美xxxⅹ性满足 | 激情大尺度视频 | 一区二区三区观看 | 国产乱码精品一区二区蜜臀 | 在线国产激情视频 | 久热免费在线 | 久久国产精品成人免费浪潮 | 久久国产热视频 | 91福利社在线观看 | 狠狠操狠狠干天天操 | 人人澡av | 亚洲综合狠狠干 | 色五月色开心色婷婷色丁香 | 在线www色 | 国产九九热 | 欧美精品999 | 中文字幕欲求不满 | 欧美精品黑人性xxxx | 999久久久国产精品 高清av免费观看 | 国产视频中文字幕 | 婷婷在线色 | 精品产品国产在线不卡 | 91中文在线视频 | 成年人视频在线免费 | 日韩欧美在线综合网 | 波多野结衣一区 | 久久久久久久久久网 | 成人网看片 | 五月天六月色 | 日韩av片免费在线观看 | av解说在线| av大全在线观看 | 天天躁日日躁狠狠躁 | 欧美激情综合五月色丁香小说 | 国产精品美女视频网站 | 国产男女免费完整视频 | 一区二区视频在线播放 | 2024国产精品视频 | 日本精品一区二区三区在线播放视频 | 欧美午夜久久久 | 在线日韩中文 | 欧美伦理一区 | 欧美成人在线免费 | 成人av免费 | 免费成人结看片 | 色婷婷视频在线 | 一本一本久久aa综合精品 | a v在线观看 | 欧美国产一区在线 | 久久精品久久国产 | 夜夜看av | 人人爱爱| 久久久久久久久久久久影院 | 中文字幕在线观看一区二区 | 日韩aⅴ视频 | 77国产精品 | 精品久久99 | 最近高清中文在线字幕在线观看 | a在线一区 | 成人免费视频播放 | 欧美性春潮 | 久久经典视频 | 操操操日日日干干干 | 91av手机在线 | 日韩大片免费观看 | 蜜臀av性久久久久av蜜臀妖精 | 69热国产视频 | 色婷av| 婷婷资源站 | 亚洲精品国产精品国自产观看 | 国产高清免费在线播放 | 91香蕉视频黄色 | 97天天干 | 亚洲色影爱久久精品 | 中文字幕电影网 | 久久久久亚洲精品中文字幕 | 天天操天天色综合 | 国产日本在线播放 | 天天视频亚洲 | 亚洲黑丝少妇 | 综合色综合 | 激情网第四色 | 看片一区二区三区 | 久久综合99| 91激情| 婷婷新五月 | 制服丝袜在线 | 碰超在线观看 | 欧美在线久久 | 日韩一区二区在线免费观看 | 天天爽夜夜爽人人爽一区二区 | 国产精品久久久区三区天天噜 | 中文字幕一区二区三区精华液 | 婷婷丁香狠狠爱 | 国产精品99久久久久久人免费 | 9在线观看免费高清完整版在线观看明 | 国产手机视频在线播放 | 欧美视频在线二区 | 99 视频 高清 | 操操爽| 久久精品99国产国产 | 国产伦理久久精品久久久久_ | 久久久黄色av | 久久久视屏 | 九九九热视频 | 国产精品99久久久久久宅男 | 91看片在线播放 | 热久久电影 | 夜色资源站国产www在线视频 | 中文字幕在线观看播放 | 美女av免费 | 日本成址在线观看 | 中文不卡视频 | 久草精品电影 | 国产一级黄色免费看 | 国产偷国产偷亚洲清高 | 成人免费视频在线观看 | 精品国产一区二区三区久久久蜜臀 | 国产成人黄色 | 天天射射天天 | 91精品国自产拍天天拍 | 久久女教师 | 天天玩天天操天天射 | 久久试看| 免费观看不卡av | 天天舔天天搞 | 麻豆传媒视频在线免费观看 | 国语自产偷拍精品视频偷 | 国产精品手机播放 | 婷婷中文字幕 | 日本一区二区免费在线观看 | 久久免费视频5 | 亚洲综合视频在线 | 91视频麻豆 | 国产一级二级三级在线观看 | 91精品国产乱码久久桃 | 欧美精品一二三 | 91精品国产99久久久久久红楼 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 黄色精品久久 | 色婷婷亚洲婷婷 | 久久免费毛片视频 | av网址最新 | av黄色在线观看 | 久草线| 欧美黄色软件 | 国产女教师精品久久av | 国产精品女人久久久 | 在线欧美a | 日韩欧美视频在线播放 | 91精品看片 | 国产夫妻自拍av | 夜夜夜夜爽 | 免费a视频在线观看 | 亚洲一区二区高潮无套美女 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产一区不卡在线 | 国产精品综合久久久久久 | 激情久久久久 | 亚洲欧美日韩一区二区三区在线观看 | 一本一本久久a久久精品牛牛影视 | 九九热免费视频在线观看 | 天天操天天操天天操天天 | 日韩欧美在线免费观看 | 国产中文自拍 | 日韩视频一区二区三区 | 中文字幕在线看片 | 天天射天天射天天射 | 69绿帽绿奴3pvideos |