精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SpringBoot + MinIO 輕松構建對象存儲服務,支持私有化部署!

存儲 數據管理
為了節省成本,很多項目團隊會自己搭建一套云存儲服務,比如采用開源的 fastDFS 工具來作為文件存儲服務器,雖然能性能不錯,但是軟件安裝環境非常復雜,最重要的是沒有一個完整的技術文檔,大部分都是某某公司或者某某網友自己總結的文檔,每次維護起來很是麻煩。

01、背景介紹

在實際的軟件系統開發過程中,經常避免不了需要用到文件存儲服務。

例如,對于小型的網站系統,通常會將文件存儲服務和網站系統部署在一臺服務器中,以實現低成本的資源投入,如果訪問量不大,基本上沒什么問題。當訪問量逐漸升高,此時網站的文件資源讀取越來越頻繁,單臺服務器可能難以承載較大的請求量,這個時候網站可能會出現打不開,甚至系統異常等問題。

當出現這個場景,很容易第一時間想到將文件采用云存儲服務來解決。所謂云存儲服務,簡單的說,就是將訪問很頻繁的文件資源服務,由本地改成云廠商提供的文件存儲服務,比如阿里云 OSS、七牛云、騰訊云、百度云等等,遷移之后,網站的訪問壓力會得到極大的釋放,服務也會變得更加穩定。但是,這些云存儲服務大部分都是收費的,以阿里云為例,數據存儲通常按照 0.12 元/GB/月的標準來收費,雖然便宜,但是日積月累下來也是一筆不小的開支啊。

為了節省成本,很多項目團隊會自己搭建一套云存儲服務,比如采用開源的 fastDFS 工具來作為文件存儲服務器,雖然能性能不錯,但是軟件安裝環境非常復雜,最重要的是沒有一個完整的技術文檔,大部分都是某某公司或者某某網友自己總結的文檔,每次維護起來很是麻煩。

直到出現了 MinIO,云存儲服務工具又多了一個新的可選項。

MinIO 是一款號稱世界上速度最快的對象存儲服務器,專為大規模數據存儲和分析而設計。它支持在各種環境中部署,包括物理服務器、虛擬機、容器等,最關鍵的是它的技術文檔非常完善,非常容易上手;同時,對個人用戶是完全開源免費的。

今天通過這篇文章,我們一起了解一下如何利用 MinIO 來搭建一套屬于自己的云存儲服務。

02、方案實踐

2.1、minio 快速安裝

minio 工具的安裝非常簡單,如果你本機安裝了 Docker 容器,可以通過 Docker 命令一鍵實現安裝操作。

以 windows 操作系統為例,安裝命令如下。

docker run \
   -p 9000:9000 \
   -p 9001:9001 \
   --name minio1 \
   -v D:\minio\data:/data \
   -e "MINIO_ROOT_USER=ROOTUSER" \
   -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
   quay.io/minio/minio server /data --console-address ":9001"

相關參數解讀:

  • docker run:表示啟動運行容器
  • -p:表示為容器綁定一個本地的端口
  • -name:表示為容器創建一個本地的名字
  • -v:表示將文件路徑設置為容器使用的持久卷位置。當 MinIO 將數據寫入 /data時,該數據會鏡像到本地路徑~/minio/data, 使其能夠在容器重新啟動時保持持久化。您可以設置任何具有讀取、寫入和刪除權限的文件路徑來使用。
  • -e:表示設置登陸控制臺的用戶名和密碼。其中控制臺的訪問地址為http://本機ip:9001,api 的訪問地址為http://本機ip:9000。

如果沒有 docker 容器,可以采用軟件包方式進行安裝,具體實現方式可以參考官網文檔,地址如下。

https://minio.org.cn/docs/minio/container/index.html

服務啟動成功之后,在瀏覽器中訪問http://127.0.0.1:9001地址,會看到類似于如下界面。

圖片圖片

輸入上文設置的用戶名和密碼,即可登陸!

2.2、minio 使用介紹

登陸成功之后,會看到類似于如下的主界面。

圖片圖片

由于官方并沒有提供漢化版,如果想要實現中文展示,可以使用瀏覽器插件進行翻譯,翻譯之后的內容如下。

圖片圖片

在對象存儲服務里面,所有的文件都是以桶的形式來組織的。簡單的說,你可以將桶看作是目錄,這個目錄下有很多的文件或者文件夾,這和其它云存儲服務基本一致。

下面我們一起來快速體驗一下!

2.2.1、創建存儲桶

所有的文件必須要存儲到桶中,因此我們需要先創建一個存儲桶。

圖片圖片

如果想要修改存儲桶信息,點擊左側的Buckets菜單,就可以看到相關的存儲桶配置信息。

2.2.2、上傳和下載文件

存儲桶創建完成之后,就可以上傳文件了。

點擊Object Browser菜單,可以看到剛剛創建的存儲桶public-bucket,點擊進入,上傳我們想要存儲的文件了。

圖片圖片

圖片圖片

圖片圖片

如果想要下載文件或者預覽文件,點擊文件,右側會彈出相關的操作按鈕,點擊相應的操作按鈕就可以了。

2.2.3、設置文件公開訪問

默認創建的存儲桶,都是私有桶,也就是說無法被公開訪問。

圖片圖片

以上文的文件為例,如果以 api 的方式直接訪問,會提示無權限,示例如下:

圖片圖片

通常來說,我們會將數據寫入操作進行控制;對于讀操作,很多不涉及安全問題的,我們希望能被互聯網公開訪問,以便加快文件的訪問速度,此時如何實現呢?

可以在存儲桶里面配置,將數據讀取權限設置為公開訪問,操作示例如下:

圖片圖片

此時,我們再次以 api 的方式訪問,結果如下:

圖片圖片

可以清晰的看到,此時文件可以公開訪問了。

2.3、springBoot 集成 minio 實現文件存儲

最后,我們一起來看看,如何在 Spring Boot 工程中集成 minio 客戶端以便實現文件存儲服務。

2.3.1、創建用戶訪問密鑰

MinIO 支持通過用戶、密碼來管理存儲桶,我們可以利用 minio 客戶端來實現文件的上傳和下載。

點擊Access Keys菜單,創建用戶名和密碼并將其保存,下文會用到。

圖片圖片

2.3.2、引入依賴包

在 Spring Boot 工程,引入  minio 客戶端依賴包。

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>7.1.4</version>
</dependency>
2.3.3、添加相關配置

在application.properties文件中,添加 minio 相關的配置信息.

minio.endpoint=http://127.0.0.1:9000
minio.access-key=o1TJJL9noE69KIgZtKQ0
minio.secret-key=KAi91ZUYHXCzCn1XUiHJ3qQflp50XFqlTCFt6Ik3
minio.bucket-name=public-bucket
2.3.4、編寫 Minio 客戶端配置類

基于上文的配置信息,編寫 Minio 客戶端配置類。

@Configuration
public class MinioConfig {

    @Value("${minio.endpoint}")
    private String minioEndpoint;

    @Value("${minio.access-key}")
    private String minioAccessKey;

    @Value("${minio.secret-key}")
    private String minioSecretKey;

    @Bean
    public MinioClient minioClient() {
        return MinioClient.builder()
                .endpoint(minioEndpoint)
                .credentials(minioAccessKey, minioSecretKey)
                .build();
    }
}
2.3.5、編寫上傳和文件預覽服務

接著利用 minioClient 客戶端,編寫上傳和文件預覽服務。

@RestController
public class FileController {

    @Value("${minio.bucket-name}")
    private String bucketName;

    @Autowired
    private MinioClient minioClient;

    /**
     * 文件上傳
     * @param file
     * @return
     * @throws IOException
     */
    @PostMapping("/upload")
    public String upload(@RequestParam("file") MultipartFile file) {
        try {
            ObjectWriteResponse response = minioClient.putObject(
                    PutObjectArgs
                            .builder()
                            .bucket(bucketName)
                            .object(file.getOriginalFilename())
                            .stream(file.getInputStream(), file.getInputStream().available(), -1)
                            .contentType(file.getContentType())
                            .build()
            );
            return "upload file success,tagId:" + response.etag();
        } catch (Exception e) {
            e.printStackTrace();
            return "upload file error";
        }
    }


    /**
     * 構建預覽地址
     * @param fileName
     * @return
     * @throws Exception
     */
    @GetMapping("/getPreviewUrl")
    public String getPreviewUrl(@RequestParam("fileName") String fileName) throws Exception {
        // 構建預覽地址,默認15秒過期,無論是私有桶還是公有桶,文件通過鏈接都可以訪問
        String url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()
                .method(Method.GET)
                .bucket(bucketName) //存儲桶
                .object(fileName) //文件名
                .expiry(15) // 設置過期時間,單位秒
                .build());
        return url;
    }


    /**
     * 構建永久訪問地址
     * @param fileName
     * @return
     * @throws Exception
     */
    @GetMapping("/getPublicUrl")
    public String getDownloadUrl(@RequestParam("fileName") String fileName) throws Exception {
        // 構建永久訪問地址,前提是這個存儲桶允許公開訪問
        String url = minioClient.getObjectUrl(bucketName, fileName);
        return url;
    }

}
2.3.6、編寫上傳頁面

在resources/static目錄下,創建index.html文件,編寫上傳頁面。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文件上傳</title>
</head>
<body>
<h1>文件上傳</h1>
<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" required>
    <button type="submit">上傳</button>
</form>
</body>
</html>
2.3.7、最后驗證一下服務

最后,將服務啟動,一起來驗證一下代碼的正確性。

1)上傳服務驗證

在瀏覽器端,訪問http://127.0.0.1:8080/,選擇文件并上傳,示例如下。

圖片圖片

回到 minio 控制臺,可以看到剛剛上傳的文件信息。

圖片圖片

2)文件預覽地址驗證

在瀏覽器端,訪問http://127.0.0.1:8080/getPreviewUrl?fileName=圖片.jpeg,會返回一段帶有簽名的文件預覽地址,示例如下。

圖片圖片

將其地址復制出來直接訪問,可以清晰的看到圖片能正常展示。

圖片圖片

通過getPresignedObjectUrl()方法生成的文件地址鏈接,無論是是公有桶還是私有桶,都可以正常訪問。與getObjectUrl()方法生成的文件預覽地址相比,它帶有過期時間,這樣設計的目的也是為了保護文件資源,避免頻繁竊取。

03、小結

最后總結一下,本文主要圍繞利用 minio 實現對象存儲服務,進行了一次知識內容的總結。

在實際的使用過程中,通常會這樣處理。

  • 如果當前文件不包含隱私信息,比如圖片,可以配置公共訪問權限,構建永久訪問鏈接。
  • 如果當前文件包含隱私信息,比如營業執照圖片,可以配置私有桶,構建帶有有效時長的訪問鏈接,比如配置過期時間1小時等。

示例代碼地址:

https://gitee.com/pzblogs/spring-boot-example-demo

04、參考

1.https://minio.org.cn/docs/minio/container/index.html

責任編輯:武曉燕 來源: 潘志的研發筆記
相關推薦

2023-10-28 09:08:19

微服務saas私有化

2025-04-29 08:04:10

DeepSeek私有化部署數字化轉型

2025-05-14 02:00:00

DeepSeek私有化部署

2023-06-01 11:36:41

ChatGLM-6B

2013-03-26 09:40:58

戴爾私有化收購

2013-04-22 17:14:12

2025-09-10 07:57:44

SpringBootMinio存儲

2022-05-20 11:23:01

火山引擎A/B 測試ToB 市場

2017-03-01 14:30:48

存儲云私有云公有云

2017-03-03 10:18:13

存儲云APIGUI

2020-10-11 21:00:31

開發存儲服務技術

2015-10-10 11:08:38

360周鴻祎私有化

2020-05-25 16:00:24

工具代碼開發

2010-06-08 10:53:54

戴爾

2025-03-07 07:57:56

SpringDeepSeek智能

2024-01-07 13:17:06

Helm云原生微服務

2013-05-23 10:39:00

2013-09-16 10:21:44

戴爾私有化PC
點贊
收藏

51CTO技術棧公眾號

国产乱码精品一区二区三区四区| 激情影院在线| 秋霞电影网一区二区| 中文字幕国产亚洲| 久久久久无码精品| 在线中文字幕播放| 国产精品家庭影院| 高清一区二区三区视频| 无码人妻丰满熟妇精品| 在线电影一区二区| 亚洲欧美另类人妖| 亚洲综合中文网| 成人性生活视频| 综合久久久久久| 麻豆成人av| 99久久久国产精品无码网爆| 国产日韩专区| 久久国产精品久久精品| 泷泽萝拉在线播放| 欧美视频二区欧美影视| 在线日韩av片| 男人添女人下部高潮视频在观看| 在线播放日本| 91丨porny丨在线| 444亚洲人体| 国产成人av免费| 99热这里只有成人精品国产| 久久久999精品视频| 亚洲一级中文字幕| **国产精品| 在线看日韩精品电影| 免费高清一区二区三区| 日韩黄色影院| 日本一区二区免费在线| 黑人另类av| 午夜久久久久久久久久| 捆绑调教一区二区三区| 欧美一区二区影院| 日韩成年人视频| 欧美日本三区| 插插插亚洲综合网| 中文字幕第69页| 欧美激情在线免费| 日韩激情第一页| 国产51自产区| 成人av综合网| 日韩精品一区二区三区swag| 亚洲综合激情视频| 福利一区在线| 欧美亚洲自拍偷拍| 国产免费视频传媒| 日韩在线影院| 91久久香蕉国产日韩欧美9色| 少妇高潮喷水在线观看| 后进极品白嫩翘臀在线播放| 一区二区欧美视频| 波多野结衣与黑人| av免费在线观看网址| 亚洲同性同志一二三专区| 亚洲国产一区二区在线 | 欧美一区二区观看视频| 亚洲精品第三页| 成人影院网站ww555久久精品| 欧美日韩一区二区三区免费看| 15—17女人毛片| 激情中国色综合| 88在线观看91蜜桃国自产| 国产欧美一区二| 欧美国产亚洲精品| 亚洲国产成人精品电影| 狠狠人妻久久久久久综合蜜桃| 日韩极品在线| 久久久久久久久久久99999| 97se亚洲综合在线| www.超碰在线.com| 成人av网址在线| 久久综合九色综合久99| 裸体xxxx视频在线| 国产精品天天摸av网| 最新欧美日韩亚洲| 久久www人成免费看片中文| 亚洲福利视频导航| 人妻熟女一二三区夜夜爱| 成人网ww555视频免费看| 欧美日韩一区不卡| 男人女人拔萝卜视频| 成人爽a毛片免费啪啪红桃视频| 亚洲成成品网站| 国产真实乱人偷精品人妻| 国产一区二区电影在线观看| 精品国产一区二区三区久久| 麻豆疯狂做受xxxx高潮视频| 国产精品婷婷| 成人精品一区二区三区| 国产综合视频在线| 久久九九久精品国产免费直播| 影音先锋欧美在线| 国产精品13p| 欧美性猛交一区二区三区精品| 亚洲一区二区中文字幕在线观看| 麻豆一区二区麻豆免费观看| 在线视频一区二区| 国产在线视频你懂的| 视频一区在线视频| 99理论电影网| 成人性生交大片免费看午夜| 一区二区三区.www| 日本999视频| 2020国产精品极品色在线观看| 亚洲欧洲国产精品| 欧美黄片一区二区三区| 日韩精品一区第一页| 91九色蝌蚪成人| 国产高清在线看| 性做久久久久久免费观看欧美| 一区二区三区韩国| 久久人人爽人人爽人人片av不| 中文字幕不卡在线视频极品| 日本亚洲色大成网站www久久| 麻豆精品国产91久久久久久| 激情视频一区二区| 亚洲淫性视频| 欧美日韩中文字幕精品| 久久久国产精品无码| 中文字幕免费一区二区三区| 国产精品久久久久久久久借妻| 亚洲精品一区二区三区四区| 国产精品全国免费观看高清| 欧美亚洲另类色图| 97青娱国产盛宴精品视频| www.久久久久久.com| 日本熟妇一区二区三区| 99免费精品视频| 青草网在线观看| 欧美日韩黄网站| 久久夜色精品国产| 一级特黄录像免费看| 国产喂奶挤奶一区二区三区| 日本wwww视频| 天天躁日日躁狠狠躁欧美巨大小说| 久久99青青精品免费观看| 国产精品热久久| 亚洲欧洲色图综合| 国产精品自拍视频在线| 日韩av在线播放网址| 国产福利视频一区二区| 免费在线观看污视频| 精品女厕一区二区三区| a级一a一级在线观看| 黄色在线成人| 国产欧美丝袜| 免费在线小视频| 日韩av网站电影| 国产高清中文字幕| 久久久久久久久99精品| 欧美精品一区二区三区免费播放| 偷拍视屏一区| 日韩**中文字幕毛片| 欧美拍拍视频| 欧美日韩一级二级| 国产黄色小视频网站| 国产一区亚洲一区| 妞干网视频在线观看| 99re热精品视频| 97热在线精品视频在线观看| 午夜视频免费在线| 日本电影亚洲天堂一区| 欧美xxxooo| 国产成人精品影院| 日韩小视频在线播放| 国产精品亚洲二区| 国产在线a不卡| 少女频道在线观看高清| 亚洲国产精品成人av| www.国产毛片| 国产精品福利电影一区二区三区四区| 天天综合成人网| 亚洲视频久久| 日本不卡一区| 99久久999| 97色在线视频| www日韩tube| 日韩免费视频线观看| 黑人一级大毛片| 中文字幕国产一区| 国产精品日日摸夜夜爽| 老牛国产精品一区的观看方式| 日本最新一区二区三区视频观看| 亚洲伊人伊成久久人综合网| 欧美精品精品精品精品免费| 免费毛片在线| 91精品欧美久久久久久动漫| 黄色一级片免费看| 中文字幕一区二区三区在线观看| 麻豆短视频在线观看| 久久亚洲风情| 成年在线观看视频| 国产一区二区三区四区二区| 亚洲在线免费视频| 粉嫩一区二区| 欧美激情国产高清| 幼a在线观看| 精品一区二区亚洲| av网站在线观看免费| 色婷婷精品大在线视频| 九九热国产在线| 国产精品久久久久永久免费观看| 永久免费未满蜜桃| 国产在线播放一区| 男女曰b免费视频| 亚洲国产精品第一区二区| 婷婷久久五月天| 麻豆一区二区| 成人动漫视频在线观看完整版| 韩日精品一区| 欧美最猛黑人xxxx黑人猛叫黄| 国产在线高清理伦片a| 国产亚洲美女精品久久久| 狠狠躁夜夜躁av无码中文幕| 欧美片网站yy| 久久久久亚洲视频| 精品成人av一区| 免费无遮挡无码永久在线观看视频| 国产精品丝袜在线| www.狠狠爱| 91在线观看地址| 中国免费黄色片| 国产精品影音先锋| 日日干日日操日日射| 青草av.久久免费一区| 亚洲乱码中文字幕久久孕妇黑人| 亚洲网站视频| 久久久久久久香蕉| 午夜精品久久| 99re6这里有精品热视频| 色婷婷热久久| 亚洲蜜桃av| 欧美少妇xxxx| 特级西西444www大精品视频| 国产成人短视频在线观看| 精品无人区一区二区三区 | 国产一级二级三级精品| 亚洲一区二区三区日本久久九| 成人羞羞国产免费| 亚洲欧美一级| 91久久国产精品91久久性色| 成人全视频免费观看在线看| 欧美中文在线字幕| 婷婷电影在线观看| 日本中文字幕久久看| 蜜桃成人精品| 国产精品日韩在线观看| 懂色aⅴ精品一区二区三区| 国产免费一区视频观看免费| 成人免费一区| 亚洲xxxxx| 成人盗摄视频| 狠狠色噜噜狠狠色综合久| 嫩草国产精品入口| 老牛影视免费一区二区| 要久久爱电视剧全集完整观看 | 精品久久久久久久久久久久| 亚洲精品国产精品乱码| 欧美日韩国产一区中文午夜| 毛片毛片女人毛片毛片| 在线观看日韩电影| 一区二区久久精品66国产精品| 制服丝袜中文字幕亚洲| 亚洲av综合色区无码一区爱av| 精品国产乱码久久久久久图片| 天堂在线一二区| 在线观看成人黄色| 2024最新电影在线免费观看| 久久青草福利网站| 欧美艳星kaydenkross| 国产精品亚洲片夜色在线| www999久久| 狠狠色综合色区| 日韩午夜电影网| 欧美一级爱爱视频| 亚洲在线日韩| 国产欧美一区二| 99久久99久久综合| 亚洲av熟女国产一区二区性色| 专区另类欧美日韩| 青青草av在线播放| 欧美熟乱第一页| 亚洲成人黄色片| 亚洲三级av在线| 91精品久久久| 国产精品成人在线| 亚洲小说春色综合另类电影| 你懂的网址一区二区三区| 99久久亚洲精品| koreanbj精品视频一区| 久久成人麻豆午夜电影| 日本一卡二卡在线| 国产精品超碰97尤物18| 日本少妇裸体做爰| 欧美日韩免费观看一区二区三区 | 人人妻人人澡人人爽欧美一区| 国产日韩亚洲欧美精品| 中文字幕第66页| 国产视频一区在线观看| 久久亚洲成人av| 欧美日韩极品在线观看一区| 手机看片1024国产| 俺去了亚洲欧美日韩| 在线精品亚洲欧美日韩国产| 亚洲xxx大片| 欧美日韩精品在线一区| 国产综合中文字幕| 国产一区二区三区精品欧美日韩一区二区三区 | 水蜜桃在线免费观看| 丝袜亚洲另类欧美综合| 年下总裁被打光屁股sp| 国产精品超碰97尤物18| 无码人妻黑人中文字幕| 亚洲成人精品久久久| 精产国品自在线www| 日本精品免费一区二区三区| 九色丨蝌蚪丨成人| 国产在线无码精品| 久久福利视频一区二区| 中文字幕在线看高清电影| 午夜亚洲国产au精品一区二区| 国产精品玖玖玖| 最好看的2019的中文字幕视频| 日韩av影片| 精品免费视频123区| 欧美三级黄美女| 四虎国产精品免费| 亚洲美女视频一区| 国产精品久久久久久69| 这里只有精品视频| 亚洲性受xxx喷奶水| 精品视频免费观看| 亚洲精品字幕| 中文字幕天堂网| 亚洲福利国产精品| 五月婷婷狠狠干| 97久久精品国产| 欧美日韩一本| 日韩免费一级视频| 久久综合九色综合欧美亚洲| 日韩欧美国产亚洲| 亚洲精品美女网站| 中文字幕在线高清| 日韩电影在线播放| 日韩不卡一区二区| 18精品爽国产三级网站| 欧美写真视频网站| 免费成人黄色| 91亚洲精华国产精华| 欧美一区二区三区久久精品| 一本之道在线视频| 亚洲国产成人91porn| 国 产 黄 色 大 片| 亚洲3p在线观看| 九九精品在线| 一区二区三区视频网| 国产精品国产自产拍在线| 97在线公开视频| 色在人av网站天堂精品| avtt综合网| 国产日产欧美视频| 欧美经典一区二区三区| 国产精品毛片一区视频播 | 日韩高清中文字幕| 北岛玲heyzo一区二区| 亚洲国产欧美日韩| 国产成人综合精品三级| 欧美另类一区二区| 一区二区三区四区精品| 欧美综合影院| 妺妺窝人体色www看人体| 99热这里都是精品| 中文字幕一二区| 欧美激情网站在线观看| 日本天堂一区| 欧美激情第3页| 亚洲国产精品自拍| a天堂在线资源| 成人免费视频视频在| 日韩精品一区第一页| 欧美黑吊大战白妞| 国产亚洲视频在线观看| 免费欧美网站| 99热成人精品热久久66| 亚洲欧洲韩国日本视频| 日日躁夜夜躁白天躁晚上躁91| 国产精品高潮呻吟久久av黑人| 综合亚洲视频| 一级片视频免费看| 日韩欧美中文字幕精品| 日本高清不卡一区二区三区视频| mm131午夜| 国产亚洲视频系列| 国产18精品乱码免费看| 国产欧美日韩中文|