oss-copy:1个shell脚本打造免费极速图床工具,阿里云OSS的强大功能

https://static.ffeeii.com/ffeeii.com/2022/04/oss_copy.png

背景

在写markdown文章的时候,图片的插入是基础功能,常见的编辑器工具,有道云markdown插入图片收费,印象笔记限制流量,怎么都不能畅快的使用图片服务。那就自己打造1个图片上传服务功能,可替代iPic工具,上传速度取决于你的宽带。

oss-copy代码库地址: https://github.com/lifeibest/oss-copy

特性用途

  • 同步文件目录或文件到OSS,可用于本地的同步盘
  • 静态资源发布脚本,可单独使用,或者把命令部署在jenkins等
  • 图床工具,写作markdown配套的工具

步骤

1、依赖工具ossutil

代码依赖ossutil命令,安装参考:https://help.aliyun.com/document_detail/120075.html

以mac为例

#下载mac安装包,其他客户端命令不一样
wget https://gosspublic.alicdn.com/ossutil/1.7.10/ossutilmac64
#创建命令软链接
ln -n ossutilmac64 /usr/local/bin/ossutil

2、阿里云OSS配置

  • 创建 Bucket,Bucket名称就是下面的配置项bucketName
  • 阿里云管理后台配置 Access Key和权限
  • Bucket文件管理设置好 Access Key的读写授权

3、克隆代码

git clone git@github.com:lifeibest/oss-copy.git

4、修改oss-copy.sh文件里的配置部分

vi oss-copy.sh

ps,没有将配置文件单独领出来,尽可能用1个文件代替所有功能,比如自动发布的时候只需要命令,引入其他文件会更麻烦,建议有特殊需求的可自行根据ossutil完成代码修改

设置选项参数

# ---配置开始
# 修改下面各配置变量
# oss配置,accessKeyID在OSS管理后台设置好读写权限
endpoint="xxx.aliyuncs.com"
accessKeyID="xxx"
accessKeySecret="xxx"
bucketName="xxx"

# ossutilconfigFile存储配置的文件
ossutilconfigFile="/tmp/.ossutilconfig"
#localDir 本地需要同步的文件目录,确保本地文件目录存在
localDir="xxx"
#d stDir 如果目录没有,会自动创建,测试的时候尽量新建一个目录,避免同步的时候文件被覆盖
dstDir="xxx"
# ossutilCmd ossutil命令行位置,比如"/usr/local/bin/ossutil"
ossutilCmd="/usr/local/bin/ossutil"
# ---配置结束

5、运行

#添加文件执行权限
chmod +x oss-copy.sh
./oss-copy.sh

本地测试了1个480M的文件,用时63秒

Succeed: Total num: 2, size: 960,414,934. OK num: 2(upload 1 files, skip 1 files), Skip size: 480,207,467.
average speed 7589000(byte/s)
63.282650(s) elapsed