国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

對(duì)象存儲(chǔ)服務(wù)-MinIO基本集成

這篇具有很好參考價(jià)值的文章主要介紹了對(duì)象存儲(chǔ)服務(wù)-MinIO基本集成。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

是什么

MinIO 是一個(gè)高性能的分布式對(duì)象存儲(chǔ)服務(wù),適合存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),如圖片,音頻,視頻,日志等。對(duì)象文件最大可以達(dá)到5TB。

安裝啟動(dòng)

mkdir -p  /usr/local/minio
cd /usr/local/minio

# 下載安裝包
wget https://dl.min.io/server/minio/release/linux-amd64/minio

下載完畢后:

在當(dāng)前minio目錄下,會(huì)出現(xiàn)一個(gè)minio文件

# 給予權(quán)限
chmod +x minio

# 創(chuàng)建minio文件存儲(chǔ)目錄及日志目錄
mkdir -p /usr/local/minio/data
mkdir -p /usr/local/minio/logs

然后在 /usr/local/minio/目錄下,新建一個(gè)run.sh并編輯以下內(nèi)容

vim run.sh,然后將以下內(nèi)容保存到run.sh,并為其賦予執(zhí)行權(quán)限chmod u+x run.sh

run.sh內(nèi)容如下:

#!/bin/bash
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=minio123456
# nohup啟動(dòng)服務(wù) 指定文件存放路徑 /root/data 還有設(shè)置日志文件路徑 /root/minio/log
nohup ./minio server --address :9000 --console-address :9001 /usr/local/minio/data > /usr/local/minio/logs/minio.log 2>&1 &

啟動(dòng)minIO

# 啟動(dòng)minio服務(wù)
./run.sh
# 查看日志
tail -f /usr/local/minio/logs/minio.log 

平臺(tái)使用

地址:http://127.0.0.1:9000(注意開(kāi)放對(duì)應(yīng)端口9000、9001)【當(dāng)端口 9000 用于連接到 API 時(shí),MinIO 會(huì)自動(dòng)將瀏覽器訪問(wèn)重定向到 MinIO 控制臺(tái)9001?!?/p>

輸入賬號(hào)密碼后,

創(chuàng)建bucket,名字隨意,創(chuàng)建完成后服務(wù)器/usr/local/minio/data下也會(huì)創(chuàng)建這個(gè)文件目錄

對(duì)象存儲(chǔ)服務(wù)-MinIO基本集成,cloud,分布式
對(duì)象存儲(chǔ)服務(wù)-MinIO基本集成,cloud,分布式
http://www.dedeyun.com/it/java/102599.html

SpringBoot集成MinIO

1.添加依賴

            <dependency>
                <groupId>io.minio</groupId>
                <artifactId>minio</artifactId>
                <version>8.4.1</version>
            </dependency>

2.配置文件

spring:
  minio:
    endpoint: http://124.222.253.33:9000
    access-key: minio
    secret-key: minio123456
    bucket-name: file
  servlet:
    multipart: # 上傳文件最大大小
      max-file-size: 1024MB
      max-request-size: 1024MB

3.配置類創(chuàng)建客戶端

@Data
@Component
@ConfigurationProperties(prefix = "spring.minio")
public class MinioConfig {

    private String endpoint;

    private String accessKey;

    private String secretKey;

    @Bean
    public MinioClient minioClient() {
        return MinioClient.builder()
                .endpoint(endpoint)
                .credentials(accessKey, secretKey)
                .build();
    }
}

4.核心業(yè)務(wù)類

僅有一些基礎(chǔ)操作

@Slf4j
@Service
public class FileService {

    @Autowired
    private MinioClient minioClient;

    private static final String SEPARATOR = "/";

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

    /**
     * 上傳文件
     *
     * @param file 文件對(duì)象
     * @param id   設(shè)備ID
     */
    public void uploadFile(MultipartFile file, Long id) {
        try {
            // 創(chuàng)建bucket
            if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) {
                minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
            }

            // 同名文件會(huì)進(jìn)行覆蓋
            String objectName = file.getOriginalFilename();

            @Cleanup
            InputStream inputStream = file.getInputStream();
            minioClient.putObject(
                    PutObjectArgs.builder()
                            .bucket(bucketName)
                            .object(id + SEPARATOR + objectName) // 多文件夾
                            .stream(inputStream, file.getSize(), -1)
                            .contentType(file.getContentType())
                            .build());

        } catch (Exception e) {
            log.error("文件上傳失?。}", e.getMessage());
            throw new RuntimeException("文件上傳失敗,請(qǐng)重新上傳");
        }
    }

    /**
     * 刪除文件
     *
     * @param path 文件路徑
     */
    public void removeObject(String path) {
        try {
            minioClient.removeObject(RemoveObjectArgs.builder()
                    .bucket(bucketName)
                    .object(path)
                    .build());
        } catch (Exception e) {
            log.error("文件刪除失?。}", e.getMessage());
            throw new RuntimeException("文件刪除失敗,請(qǐng)重新刪除");
        }
    }

    /**
     * 文件列表
     *
     * @param id 設(shè)備ID
     */
    public List<FileInfo> listFiles(Long id) {
        Iterable<Result<Item>> results = minioClient.listObjects(
                ListObjectsArgs.builder().bucket(bucketName).recursive(true).build());

        List<FileInfo> infos = new ArrayList<>();
        results.forEach(r -> {
            FileInfo info = new FileInfo();
            try {
                Item item = r.get();
                // 最多一層文件夾
                String path = item.objectName();
                int idx = path.indexOf(SEPARATOR);
                if (path.substring(0, idx).equals(id.toString())) {
                    info.setPath(path);
                    info.setFileName(path.substring(idx + 1));
                    info.setSize(item.size());
                    infos.add(info);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        });
        return infos;
    }

    /**
     * 下載文件
     *
     * @param response response
     * @param path     文件路徑
     */
    public void downFile(HttpServletResponse response, String path) {
        try {
            @Cleanup
            OutputStream outputStream = response.getOutputStream();
            @Cleanup
            InputStream inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(this.bucketName)
                    .object(path).build());
            response.reset();
            String fileName = path.substring(path.indexOf(SEPARATOR) + 1);
            response.setHeader("Content-Disposition", "attachment;filename=" +
                    URLEncoder.encode(fileName.substring(fileName.lastIndexOf(SEPARATOR) + 1), "UTF-8"));
            response.setContentType("application/octet-stream");
            response.setCharacterEncoding("UTF-8");
            FileCopyUtils.copy(inputStream, outputStream);
        } catch (Throwable e) {
            log.error("文件下載失敗!{}", e.getMessage());
            throw new RuntimeException("文件下載失敗,請(qǐng)重新下載");
        }
    }
}

controller文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-656335.html

@RestController
public class FileController {

    @Autowired
    private FileService fileService;

    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file, Long id) {
        fileService.uploadFile(file, id);
        return "上傳成功";
    }

    @GetMapping("/download")
    public String downloadFile(HttpServletResponse response, String path) {
        fileService.downFile(response, path);
        return "下載成功";
    }

    @DeleteMapping("/delete")
    public String deleteFile(String path) {
        fileService.removeObject(path);
        return "刪除成功";
    }

    @GetMapping("/list")
    public List<FileInfo> listFiles(Long id) {
        return fileService.listFiles(id);
    }
}

到了這里,關(guān)于對(duì)象存儲(chǔ)服務(wù)-MinIO基本集成的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 學(xué)習(xí)筆記MinIo對(duì)象存儲(chǔ)-Docker分布式集群搭建踩坑!

    學(xué)習(xí)筆記MinIo對(duì)象存儲(chǔ)-Docker分布式集群搭建踩坑!

    ? MinIO 是一款基于Go語(yǔ)言的高性能對(duì)象存儲(chǔ)服務(wù),在Github上已有39K+Star。它采用了Apache License v2.0開(kāi)源協(xié)議,非常適合于存儲(chǔ)大容量非結(jié)構(gòu)化的數(shù)據(jù),例如圖片、視頻、日志文件、備份數(shù)據(jù)和容器/虛擬機(jī)鏡像等。 本文將使用 MinIO 來(lái)自建一個(gè)對(duì)象存儲(chǔ)服務(wù)用于存儲(chǔ)圖片。 ? M

    2024年02月11日
    瀏覽(32)
  • Linux 部署 MinIO 分布式對(duì)象存儲(chǔ) & 配置為 typora 圖床

    Linux 部署 MinIO 分布式對(duì)象存儲(chǔ) & 配置為 typora 圖床

    MinIO 是一款高性能的對(duì)象存儲(chǔ)系統(tǒng),它可以用于大規(guī)模的 AI/ML、數(shù)據(jù)湖和數(shù)據(jù)庫(kù)工作負(fù)載。它的 API 與Amazon S3 云存儲(chǔ)服務(wù)完全兼容,可以在任何云或本地基礎(chǔ)設(shè)施上運(yùn)行。MinIO 是 開(kāi)源軟件 ,也提供商業(yè)許可和支持 MinIO 的特點(diǎn)有: 簡(jiǎn)單 :MinIO 的安裝和使用都非常簡(jiǎn)單,只需

    2024年02月07日
    瀏覽(28)
  • 云原生 | 從零開(kāi)始,Minio 高性能分布式對(duì)象存儲(chǔ)快速入手指南

    云原生 | 從零開(kāi)始,Minio 高性能分布式對(duì)象存儲(chǔ)快速入手指南

    [ 點(diǎn)擊 ?? 關(guān)注「 全棧工程師修煉指南」公眾號(hào) ] 希望各位看友多多支持【關(guān)注、點(diǎn)贊、評(píng)論、收藏、投幣】,助力每一個(gè)夢(mèng)想。 【 WeiyiGeek Blog\\\'s - 花開(kāi)堪折直須折,莫待無(wú)花空折枝 ?】 作者主頁(yè): 【?https://weiyigeek.top 】 博客地址: 【?https://blog.weiyigeek.top?】 作者答疑學(xué)習(xí)交

    2024年02月08日
    瀏覽(31)
  • 【Spring Cloud】新聞?lì)^條微服務(wù)項(xiàng)目:分布式文件系統(tǒng)MinIO實(shí)現(xiàn)文章頁(yè)面存取

    【Spring Cloud】新聞?lì)^條微服務(wù)項(xiàng)目:分布式文件系統(tǒng)MinIO實(shí)現(xiàn)文章頁(yè)面存取

    ? 個(gè)人簡(jiǎn)介:? ??個(gè)人主頁(yè):趙四司機(jī) ??學(xué)習(xí)方向:JAVA后端開(kāi)發(fā)? ??種一棵樹(shù)最好的時(shí)間是十年前,其次是現(xiàn)在! ?往期文章:SpringBoot項(xiàng)目整合微信支付 ??喜歡的話麻煩點(diǎn)點(diǎn)關(guān)注喔,你們的支持是我的最大動(dòng)力。 前言: 最近在做一個(gè)基于SpringCloud+Springboot+Docker的新聞?lì)^

    2023年04月08日
    瀏覽(16)
  • 【分布式技術(shù)專題】「OSS中間件系列」Minio的文件服務(wù)的存儲(chǔ)模型及整合Java客戶端訪問(wèn)的實(shí)戰(zhàn)指南

    【分布式技術(shù)專題】「OSS中間件系列」Minio的文件服務(wù)的存儲(chǔ)模型及整合Java客戶端訪問(wèn)的實(shí)戰(zhàn)指南

    Minio的元數(shù)據(jù) 數(shù)據(jù)存儲(chǔ) MinIO對(duì)象存儲(chǔ)系統(tǒng)沒(méi)有元數(shù)據(jù)數(shù)據(jù)庫(kù),所有的操作都是對(duì)象級(jí)別的粒度的,這種做法的優(yōu)勢(shì)是: 個(gè)別對(duì)象的失效,不會(huì)溢出為更大級(jí)別的系統(tǒng)失效。 便于實(shí)現(xiàn)\\\"強(qiáng)一致性\\\"這個(gè)特性。此特性對(duì)于機(jī)器學(xué)習(xí)與大數(shù)據(jù)處理非常重要。 數(shù)據(jù)管理 元數(shù)據(jù)與數(shù)據(jù)一起

    2024年02月11日
    瀏覽(21)
  • 【開(kāi)發(fā)環(huán)境】(阿里云分布式文件系統(tǒng))對(duì)象存儲(chǔ)OSS 服務(wù)配置

    【開(kāi)發(fā)環(huán)境】(阿里云分布式文件系統(tǒng))對(duì)象存儲(chǔ)OSS 服務(wù)配置

    目錄 一、開(kāi)通 “對(duì)象存儲(chǔ) OSS” 服務(wù): 二、創(chuàng)建 Bucket 容器: 1.創(chuàng)建一個(gè)Bucket: 三、使用 OSS 對(duì)象存儲(chǔ): 四、使用 SDK 訪問(wèn) OSS: 1.安裝使用 OSS SDK: 2.SDK 配置和測(cè)試: ? ? ? ? 進(jìn)入阿里云官網(wǎng): https://www.aliyun.com/ https://www.aliyun.com/ ? ? ? ? 進(jìn)入到 OSS 對(duì)象存儲(chǔ)的管理平臺(tái)

    2024年02月02日
    瀏覽(122)
  • minio分布式文件存儲(chǔ)

    基本介紹 什么是? MinIO ????????MinIO 是一款基于 Go 語(yǔ)言的高性能、可擴(kuò)展、云原生支持、操作簡(jiǎn)單、開(kāi)源的分布式對(duì)象存儲(chǔ)產(chǎn)品?;?Apache License v2.0 開(kāi)源協(xié)議,雖然輕量,卻擁有著不錯(cuò)的性能。它兼容亞馬遜S3云存儲(chǔ)服務(wù)接口。可以很簡(jiǎn)單的和其他應(yīng)用結(jié)合使用,例如

    2024年02月08日
    瀏覽(25)
  • 分布式文件存儲(chǔ)MinIO-監(jiān)控

    分布式文件存儲(chǔ)MinIO-監(jiān)控

    MinIO自身提供了關(guān)于集群狀態(tài)和操作的相關(guān)的Prometheus SQL指標(biāo)與支持Prometheus數(shù)據(jù)模型的監(jiān)控指標(biāo)收集工具進(jìn)行搭配使用,無(wú)論是主機(jī)部署亦或是云上部署都可以進(jìn)行集成。官方選定的第三方監(jiān)控軟件為Prometheus和InfluxDB,使用者可以根據(jù)各自公司對(duì)于監(jiān)控設(shè)施的建設(shè)進(jìn)行選擇。

    2024年02月11日
    瀏覽(21)
  • Springboot整合minio組件-分布式文件存儲(chǔ)

    一、快速開(kāi)始 Minlo說(shuō)明: Minio是Apcche旗下的一款開(kāi)源的輕量級(jí)文件服務(wù)器,基于對(duì)象存儲(chǔ),協(xié)議是基于Apache License v2.0,開(kāi)源可用于商務(wù)。 Minio主要用來(lái)存儲(chǔ)非結(jié)構(gòu)化的數(shù)據(jù),類似文件,圖片,照片,日志文件,各類備份文件等,按照官網(wǎng)描述,文件的大小從幾KB到5TB。 Minio提

    2024年02月11日
    瀏覽(22)
  • OSS文件上傳、MinIO分布式文件存儲(chǔ)系統(tǒng)

    阿里云OSS上傳圖片 實(shí)現(xiàn)步驟: 1. 定義OSS相關(guān)配置 application-dev.yml application.yml 2. 讀取OSS配置 在sky-common模塊中,已定義 3. 生成OSS工具類對(duì)象 在sky-server模塊 其中,AliOssUtil.java已在sky-common模塊中定義 4. 定義文件上傳接口 在sky-server模塊中定義接口 MinIO分布式文件存儲(chǔ)系統(tǒng) MinI

    2024年01月24日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包