笔记笔记
  • Home
  • AI&ML
  • Example
  • Zoo
  • 关于
⌘ K
目录
灵感
统一资源标识符
画图工具
收藏的正则表达式
灰度站点
LaTeX
DNS
下载 WWDC 字幕
暂存
工具
工具
服务器软件
MinIO
Shell 软件
Git
ImageMagick
MyCLI
MySQL
桌面软件
Chrome
DataGrip
IntelliJ IDEA 技巧
最后更新时间:
Copyright © 2023-2024 | Powered by dumi | GuoDapeng | 冀ICP备20004032号-1 | 冀公网安备 冀公网安备 13024002000293号

TABLE OF CONTENTS

‌
‌
‌
‌

MinIO

docker 部署

docker pull minio/minio
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-v $PWD:/data \
-e "MINIO_ROOT_USER=ROOTNAME" \
-e "MINIO_ROOT_PASSWORD=CHANGEME123" \
minio/minio server /data --console-address ":9001"
MinIO docker 部署

C++ 客户端

占位,待续。下面是没验证的片段,有时间了在重写写一下。

#include "miniocpp/client.h"
int main(int argc, char* argv[]) {
// 初始化 MinIO
const auto systemSettingsModelForMinIO = iSystemSettingsService.findMinIOSystemSettings();
minio::s3::BaseUrl baseUrl(systemSettingsModelForMinIO->host, systemSettingsModelForMinIO->https == 1);
minio::creds::StaticProvider provider(
systemSettingsModelForMinIO->accessKey, systemSettingsModelForMinIO->secretKey
);
minio::s3::Client minioClient(baseUrl, &provider);
{
const oatpp::String fileType = "portrait";
const oatpp::String tempFilePath = "./tmp/" + uuidString();
const auto filePart = multipart->getNamedPart(fileType);
OATPP_ASSERT_HTTP(filePart, Status::CODE_422, "提交的文件解析错误")
oatpp::data::stream::FileOutputStream fileOutputStream(tempFilePath->c_str());
fileOutputStream.writeSimple(filePart->getPayload()->getInMemoryData());
fileOutputStream.close();
userPortraitCreateRequestDto->bucket = "work-node";
userPortraitCreateRequestDto->object =
constructOSSObjectName(fileType, tempFilePath, filePart->getFilename());
minio::s3::UploadObjectArgs args;
args.bucket = *userPortraitCreateRequestDto->bucket;
args.filename = *tempFilePath;
args.object = *userPortraitCreateRequestDto->object;
auto resp = minioClient.UploadObject(args);
OATPP_ASSERT_HTTP(resp.status_code == 0, Status::CODE_422, "OSS 服务器错误;上传失败")
std::filesystem::remove(tempFilePath->c_str());
}
{
auto userPortraitUpdateRequestDto = UserPortraitUpdateRequestDto::createShared();
userPortraitUpdateRequestDto->portraitId = userPortraitResponseDto->portraitId;
userPortraitUpdateRequestDto->expirySeconds = 60;
userPortraitUpdateRequestDto->urlExpirationTime = 60 + getCurrentTime();
minio::s3::GetPresignedObjectUrlArgs args;
args.bucket = *userPortraitCreateRequestDto->bucket;
args.object = *userPortraitResponseDto->object;
args.expiry_seconds = *userPortraitUpdateRequestDto->expirySeconds;
args.method = minio::http::Method::kGet; // 不写这个,有时候不能生成 URL
const auto resp = minioClient.GetPresignedObjectUrl(args);
OATPP_ASSERT_HTTP(!resp.url.empty(), Status::CODE_422, "OSS 服务器错误;预签失败")
userPortraitUpdateRequestDto->url = resp.url;
iUserPortraitService.updateUserPortrait(userPortraitUpdateRequestDto);
}
}

配置

匿名访问

如下配置即可这样随便访问 default 路径下的资源。例如:http://192.168.30.202:9000/work-node/default/avatar/default.png

Preview