首页 > 系统相关 >使用shell脚本上传文件至阿里云OSS(无需装任何sdk)

使用shell脚本上传文件至阿里云OSS(无需装任何sdk)

时间:2022-10-10 14:01:59浏览次数:82  
标签:osshost shell dest OSS bucket source key id sdk

 

 

#!/bin/bash


host="oss-cn-hangzhou.aliyuncs.com"
bucket="bucket" # BucketName
id="id" # AccessKeyId
key="key" # AccessKeySecret
osshost=$bucket.$host
echo $osshost


source="/mnt/dumpfile/test.txt"
dest="dumpfiles/test.txt"


resource="/${bucket}/${dest}"
contentType=`file -ib ${source} |awk -F ";" '{print $1}'`
dateValue="`TZ=GMT env LANG=en_US.UTF-8 date +'%a, %d %b %Y %H:%M:%S GMT'`"
stringToSign="PUT\n\n${contentType}\n${dateValue}\n${resource}"
signature=`echo -en $stringToSign | openssl sha1 -hmac ${key} -binary | base64`


url=http://${osshost}/${dest}
echo "upload ${source} to ${url}"


curl -i -q -X PUT -T "${source}" \
    -H "Host: ${osshost}" \
    -H "Date: ${dateValue}" \
    -H "Content-Type: ${contentType}" \
    -H "Authorization: OSS ${id}:${signature}" \
    ${url}
 

 

自行替换里面的如下配置:

  • bucket="bucket" # BucketName
  • id="id" # AccessKeyId
  • key="key" # AccessKeySecret
  • source="/mnt/dumpfile/test.txt"
  • dest="dumpfiles/test.txt"

 

该脚本依赖了如下几个程序(如果缺失,需要安装一下,以当前环境的debian为例):

  • echo
  • file
  • awk
  • openssl
  • curl

 

sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
apt update

apt install file vim -y

vim  upload.sh

# 给对应脚本修改权限
chmod 755 upload.sh

./upload.sh

 

参考资料:

https://developer.aliyun.com/article/698777
http://mirrors.ustc.edu.cn/help/debian.html

注意:shell脚本是大小写敏感的,在此处同时体现了脚本语言的劣根性,写错了只能靠肉眼看,好处是可以随便写

标签:osshost,shell,dest,OSS,bucket,source,key,id,sdk
From: https://www.cnblogs.com/linyijia/p/16775469.html

相关文章

  • 41、shell编程基础
    bash的变量默认都是全局变量,脚本内都可以调用,无论在什么位置(函数体中也一样),即函数体外可以调用函数体内的变量;local一般用于局部变量声明,多在函数体内使用;如果......
  • ShareSDK 第三方平台分享参数说明
    本文介绍使用ShareSDK时,各个社交平台的分享情况说明新浪微博分享规则新浪微博支持分享类型:应用内分享:文字,文字+图片,链接客户端分享:文字,文字+图片,链接,视频,多图(只支持本地......
  • Jmeter——BeanShell 内置变量vars、props、prev的使用
    在使用Jmeter过程中,或多或少都会接触些BeanShell,它会使工具的使用,变得更灵活。Jmeter中关于BeanShell的有:1.BeanShellSampler取样器:完成Beanshell请求组件中定......
  • @解释器Bash shell基础
    Bashshell基础文章目录​​Bashshell基础​​​​一.介绍​​​​类比:​​​​二、变量​​​​1、什么是变量​​​​2、为何要用变量​​​​3、如何用变量​​​​示列......
  • ubuntu通过xshell连接更换源
    ubuntu通过xshell连接更换源1、在ubuntu服务器上面运行sudopasswdroot,输入密码,然后suroot可以切换到root用户。2、在windows客户端上面安装xshell,连接上ubuntu服务器。3......
  • shell 企业微信机器人发送消息
    目录shell企业微信机器人发送消息企业微信群创建机器人实例shell企业微信机器人发送消息企业微信群创建机器人创建完机器人后我们会获取到一个webhook,通过curl调用we......
  • 03@shell数据类型及变量值的操作总结
    文章目录​​基本数据类型与值操作​​​​一、数据类型介绍​​​​1、什么是数据​​​​2、编程语言划分(shell的划分)​​​​二、基本数据类型​​​​1、数字​​​​......
  • Jmeter使用beanshell加密,调用AES代码,生成jar包
    工作中需要对接口进行AES加密,找开发要来了加密的代码(如下),记录下具体的使用方法:新建一个AESUtil包,在里面新建一个类(建议类的名字也为AESUtil)。把下面的代码复制进去,注意,......
  • 01- Shell脚本学习--入门
    原文链接:https://github.com/52fhy/shell-book/blob/master/chapter1.md01-Shell脚本学习--入门标签:Shell[TOC]简介Shell是一种脚本语言,那么,就必须有解释器来执行......
  • jmeter BeanShell PostProcessor 获取http请求的入参,存入CSV
    1、在http请求前新建一个jmeterBeanShellPostProcessor,其与http请求同在一个线程组内。  2、下载fastjson-2.0.14.jar包放在jmeter的lib目录下 下载路径为:http......