前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【minio】Ubuntu安装MinIO文件服务器并通过C++上传下载

【minio】Ubuntu安装MinIO文件服务器并通过C++上传下载

作者头像
DevFrank
发布2024-07-24 15:28:36
450
发布2024-07-24 15:28:36
举报
文章被收录于专栏:C++开发学习交流

😏1. MinIO介绍

MinIO是一种高性能、可扩展的对象存储服务,它可以在私有云、公共云和边缘计算环境中运行。MinIO的设计目标是为了满足现代应用程序对数据存储的需求,例如视频流处理、机器学习、大数据分析等。

MinIO使用分布式架构来实现高可用性和可伸缩性。它可以在多个服务器之间分配数据,以提供更高的存储容量和更快的读写速度。此外,MinIO还支持S3 API,这使得它可以轻松地与其他S3兼容的服务集成。

MinIO的另一个优点是它的易用性。通过简单的命令行界面或API,用户可以轻松地创建、删除和管理存储桶,上传和下载文件,以及进行其他常见的对象存储操作。

总之,MinIO是一种高性能、易用、可扩展的对象存储解决方案,适用于各种规模的应用场景。

😊2. MinIO文件服务器安装

MinIO支持k8s、docker、Linux、Win、MacOS多种安装方式,这里我用的Linux安装。

下载minio:

代码语言:javascript
复制
cd /opt && sudo mkdir minio && cd minio
sudo wget https://dl.minio.io/server/minio/release/linux-amd64/minio
sudo touch minio.log && sudo mkdir data && sudo chmod 777 minio

启动minio:

代码语言:javascript
复制
sudo ./minio server /opt/minio/data (/opt/minio/data 为存放静态文件的目录)
# 但控制台端口会动态变化,可使用 `--console-address “:PORT”` 选择静态端口。
sudo ./minio server /opt/minio/data --console-address ":62222"

另外可通过这样设置登录名和密码:

代码语言:javascript
复制
sudo vim /etc/profile
# set minio environment
export MINIO_ROOT_USER=fileadmin
export MINIO_ROOT_PASSWORD=fileadmin
source /etc/profile

访问Web界面:

代码语言:javascript
复制
如:127.0.0.1:62222

设置后台启动:

代码语言:javascript
复制
vim minio-start.sh
sudo nohup /opt/minio/minio server  /opt/minio/data --console-address ":62222" | sudo tee /opt/minio/minio.log &
bash minio-start.sh
# 或单独启动
sudo /opt/minio/minio server /opt/minio/data --console-address ":62222"

运行如下(创建存储桶,可上传下载文件):

😆3. SDK安装与C++实现上传下载

Github地址:https://github.com/minio/minio-cpp

SDK参考:https://minio-cpp.min.io/

官方这个SDK比较复杂,有兴趣的可以试试这个:https://github.com/shouxieai/minio-cpp-sdk

安装SDK:

代码语言:javascript
复制
# vcpkg
vcpkg install minio-cpp
# 源码安装
git clone https://github.com/minio/minio-cpp
cd minio-cpp
wget --quiet -O vcpkg-master.zip https://github.com/microsoft/vcpkg/archive/refs/heads/master.zip
unzip -qq vcpkg-master.zip
./vcpkg-master/bootstrap-vcpkg.sh
./vcpkg-master/vcpkg integrate install
cmake -B ./build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=./vcpkg-master/scripts/buildsystems/vcpkg.cmake
cmake --build ./build --config Debug

C++上传下载示例:

代码语言:javascript
复制
#include <iostream>
#include <minio/minio.h>

int main() {
    // MinIO服务器的连接信息
    std::string minioEndpoint = "your_minio_endpoint";
    std::string accessKey = "your_access_key";
    std::string secretKey = "your_secret_key";
    bool useSSL = false;

    // 创建Minio对象
    Minio::MinioClient minio(minioEndpoint, accessKey, secretKey, useSSL);

    // 上传文件
    std::string bucketName = "your_bucket_name";
    std::string objectName = "your_object_name";
    std::string filePath = "path_to_your_file";

    try {
        minio.PutObject(bucketName, objectName, filePath);
        std::cout << "File uploaded successfully." << std::endl;
    } catch (const std::exception& e) {
        std::cerr << "Error occurred: " << e.what() << std::endl;
        return 1;
    }

    // 下载文件
    std::string downloadPath = "path_to_save_downloaded_file";
    try {
        minio.GetObject(bucketName, objectName, downloadPath);
        std::cout << "File downloaded successfully." << std::endl;
    } catch (const std::exception& e) {
        std::cerr << "Error occurred: " << e.what() << std::endl;
        return 1;
    }

    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 😏1. MinIO介绍
  • 😊2. MinIO文件服务器安装
  • 😆3. SDK安装与C++实现上传下载
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档