当前位置: 首页 > news >正文

minio使用shell上传文件

minio使用shell上传文件

  • 前言
  • 1. 编写调用脚本
  • 2.测试脚本上传
  • 3.候选脚本

前言

业务场景需要实现,服务器文件上传至存储服务。一种方式是安装minio的linux客户端,另一种方式是通过调用minio的api接口实现文件上传。后一种方式不需要依赖minio的客户端使用起来又一定便利性。本文介绍通过minio api接口的上传文件的脚本写法及用法

1. 编写调用脚本

#!/bin/bash# 检查参数是否正确
if [ "$#" -ne 2 ]; thenecho "usage: $0 <bucket-name> <file-path>"exit 1
fi# 设置MinIO信息
minio_url="http://192.168.100.100:7000"
minio_access_key="minio"
minio_secret_key="minio@admin"
minio_bucket="$1"# 设置文件名和路径
file_path="$2"
file_name="$(basename $file_path)"# 生成 HTTP 头
http_date=$(date -u "+%a, %d %h %Y %H:%M:%S GMT")
http_content_md5=$(openssl md5 -binary < $file_path | base64)
http_content_type=$(file -b --mime-type $file_path)
http_request_path="/$minio_bucket/$file_name"
http_request_body=""http_request="PUT\n$http_content_md5\n$http_content_type\n$http_date\n$http_request_path"
http_signature=$(echo -en "${http_request}" | openssl sha1 -binary -hmac "${minio_secret_key}" | base64)# 使用 cURL 和 MinIO API 上传文件
curl -X PUT \-H "Date: $http_date" \-H "Content-Type: $http_content_type" \-H "Content-MD5: $http_content_md5" \-H "Authorization: AWS $minio_access_key:$http_signature" \--upload-file "$file_path" \"$minio_url/$minio_bucket/$file_name"

2.测试脚本上传

./upload_to_minio_new.sh aaaa upms_install.sh

3.候选脚本

#!/bin/bash# usage: ./minio-upload my-bucket my-file.zipbucket=$1
file=$2
host=192.168.100.100:7000
s3_key='minio'
s3_secret='minio@admin'
resource="/${bucket}/${file}"
content_type='application/zip'
date=$(date -R)
filesize=$(stat -c%s "$file")_signature="PUT\n\n${content_type}\n${date}\n${resource}"
signature=$(echo -en "${_signature}" | openssl sha1 -hmac "${s3_secret}" -binary | base64)curl -v --fail \-X PUT \--data-binary "@$file" \--header "Host: ${host}" \--header "Date: ${date}" \--header "Content-Type: ${content_type}" \--header "Content-Length: ${filesize}" \--header "Authorization: AWS ${s3_key}:${signature}" \http://${host}${resource}

相关文章:

minio使用shell上传文件

minio使用shell上传文件 前言1. 编写调用脚本2.测试脚本上传3.候选脚本 前言 业务场景需要实现&#xff0c;服务器文件上传至存储服务。一种方式是安装minio的linux客户端&#xff0c;另一种方式是通过调用minio的api接口实现文件上传。后一种方式不需要依赖minio的客户端使用…...

LeetCode538. Convert BST to Greater Tree

文章目录 一、题目二、题解 一、题目 Given the root of a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus the sum of all keys greater than the original key in BST. As a remin…...

iPaaS和RPA,企业自动化应该如何选择?

全球著名的咨询调查机构Gartner在2022年初再次发布了《2022年12大技术趋势》报告。 Gartner是全球最具权威的IT研究与顾问咨询公司&#xff0c;成立于1979年&#xff0c;在界定及分析那些决定了商业进程的发展趋势与技术方面&#xff0c;它拥有二十年以上的丰富经验&#xff0c…...

AI实践与学习1_Milvus向量数据库实践与原理分析

前言 随着NLP预训练模型&#xff08;大模型&#xff09;以及多模态研究领域的发展&#xff0c;向量数据库被使用的越来越多。 在XOP亿级题库业务背景下&#xff0c;对于试题召回搜索单单靠着ES集群已经出现性能瓶颈&#xff0c;因此需要预研其他技术方案提高试题搜索召回率。…...

3Dexcite deltgen 2022x 新功能

3DEXCITE DELTAGEN 2022x 现已发布&#xff0c;此次新版发布包含 DELTAGEN 2022x&#xff0c;DELTAGEN MARKETING SUITE 2022x&#xff0c;DELTAGEN XPLORE 2022x&#xff0c;以及软件开发工具包 SDK FOR DELTAGEN 2022x 版本。赶快来获取最新 DG 版本&#xff0c;了解新增内容…...

代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形

代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形 文章链接&#xff1a;柱状图中最大的矩形 视频链接&#xff1a;柱状图中最大的矩形 1. LeetCode 84. 柱状图中最大的矩形 1.1 思路 本题是给一个数组形象得画出图后求矩形的最大面积是多少。本题和42. 接雨水…...

【2023云栖】陈守元:阿里云开源大数据产品年度发布

本文根据 2023 云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;陈守元 | 阿里云计算平台事业部开源大数据产品总监 演讲主题&#xff1a;阿里云开源大数据产品年度发布 随着云计算的不断发展&#xff0c;未来数据处理和应用的趋势将围绕C…...

Element UI 禁用数字输入框组件添加鼠标滚动事件

Element UI 禁用数字输入框组件添加鼠标滚动事件 <el-input type"number" mousewheel.native.prevent DOMMouseScroll.native.prevent :min"0" onkeyup"this.valuethis.value.match(/\d\.?\d{0,2}/);"v-model"form.threeYearDevelop…...

担忧CentOS停服?KeyarchOS系统来支撑

担忧CentOS停服&#xff1f;KeyarchOS系统来支撑 近年发生的“微软黑屏门”、“微软操作系统停更”等安全事件&#xff0c;敲响了我国 IT 产业的警钟&#xff0c;建立由我国主导的 IT 产业生态尤为迫切。对此&#xff0c;我国信息技术应用创新行业乘势而起&#xff0c;旨在通过…...

聚观早报 |联想集团Q2财季业绩;小鹏汽车Q3营收

【聚观365】11月17日消息 联想集团Q2财季业绩 小鹏汽车Q3营收 微软发布两款自研AI芯片 FAA批准SpaceX再次发射星际飞船 2023 OPPO开发者大会 联想集团Q2财季业绩 全球数字经济领导企业联想集团公布截至2023年9月30日的2023/24财年第二财季业绩&#xff1a;整体营收达到10…...

SAP ABAP权限控制中常用TCODE

权限控制中的几个TCODE 1.创建新的权限对象并在程序中使用 利用SU21创建权限对象Z_TEST&#xff0c;在程序中检查授权。 检查的代码如下&#xff1a; AUTHORITY-CHECK OBJECT ‘Z_TEST’ID ‘ACTION’ FIELD ‘44′ID ‘BUKRS’ FIELD DUMMY .IF sy-subrc NE 0.MESSAGE e00…...

云计算赛项容器云2023搭建

部署容器云平台[5 分] 使 用 OpenStack 私 有 云 平 台 创 建 两 台 云 主 机 &#xff0c; 云 主 机 类 型 使 用 4vCPU/12G/100G 类型&#xff0c;分别作为 Kubernetes 集群的 Master 节点和 node 节点&#xff0c; 然后完成 Kubernetes 集群的部署&#xff0c;并完成 Istio …...

11.1 文件拷贝移动与删除

在编程中&#xff0c;针对磁盘与目录的操作也是非常重要的&#xff0c;本章将重点介绍如何实现针对文件目录与磁盘的操作方法&#xff0c;其中包括了删除文件&#xff0c;文件拷贝&#xff0c;文件读写&#xff0c;目录遍历输出&#xff0c;遍历磁盘容量信息&#xff0c;磁盘格…...

redhat下使用CentOS yum源,并安装docker

一、安装yum源 1.卸载yum # 查看系统自身安装的yum软件包 rpm -qa | grep yum # 卸载软yum件包 rpm -e 软件包名称 --nodeps #可以使用简称如 rpm -e yum-* --nodeps2. 安装yum [rootbogon ~]# rpm -ivh --nodeps https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Pa…...

基于单片机体温脉搏检测控制系统及源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、DS18B20传感器检测体温。 3、红外对接管采集心率值送到液晶1602显示。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 /lcd1602初始化设置*/ void init_1602() { write_com(0x38); //显示…...

MyBatis-Plus逻辑删@TableLogic

MyBatis-Plus逻辑删除指&#xff0c;在数据库中删除数据时&#xff0c;并没有真正的删除&#xff0c;而是更改指定字段的值&#xff0c;这个字段的值可以为0或1&#xff0c;0代表未删除&#xff0c;1代表已删除&#xff0c;所以delete操作实际上是update操作,查询操作也是要加w…...

本地私域线上线下 线上和线下的小程序

私域商城是一种新型的零售模式&#xff0c;它将传统的线下实体店与线上渠道相结合&#xff0c;通过会员、营销、效率等方式&#xff0c;为消费者提供更加便利和高效的购物体验。私域商城的发展趋势表明&#xff0c;它将成为未来零售业的重要模式&#xff0c;引领零售业的创新和…...

【前端学java】java中的Object类(8)

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学 java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08…...

TensorFlow实战教程(二十六)-什么是生成对抗网络GAN?基础原理和代码普及

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了Keras实现经典的深度学习文本分类算法,包括LSTM、BiLSTM、BiLSTM+Attention和CNN、TextCNN。这篇文章将详细介绍生成对抗网络GAN的基础知识,包括什么是GAN、常用算法(CGAN、DCGAN、…...

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven依赖管理,版本号管理,继承和聚合

第一章 Maven的依赖管理 1.1 依赖范围 依赖语法&#xff1a;<scope> compile【默认值】&#xff1a;在main、test、Tomcat【服务器】下均有效。test&#xff1a;只能在test目录下有效 junit provided&#xff1a;在main、test下均有效&#xff0c;Tomcat【服务器】无效…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...